Gå til innhold

Min første brukbare kode.


Anbefalte innlegg

Da er mitt første program skrevet i C++ ferdig. Ett lite "gjett tallet spill".

Så hvordan skal jeg nå gå frem, enten forbedring eller endring av koden? Bruker jeg mange unødvenige linjer/koder? Er noe feil, hva må rettes på? Finnes det en annen/bedre syntax?

 

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

using namespace std;

int main()

{
srand ( time(NULL) );

int tall = rand() % 100;
int gjett;
bool flagg = true;
int teller = 1;	

while (flagg)
{
	cout << "Gjett tall: ";
	cin >> gjett;

	if (gjett == tall)
		{
			cout << "Riktig, tallet var ";
			cout << tall;
			cout << ", og du brukte ";
			cout << teller;
			cout << " forsok";
			flagg = false;
			cin.get();
		}

	else
		{
			if (gjett > tall)
			{
				cout << "Lavere enn ";
				cout << gjett;
			}

			else
			{
				cout << "Hoyere enn ";
				cout << gjett;
			}
	}

	cout << endl;
	cout << endl;
	teller += 1;
}







cin.get();
return 0;
}

Lenke til kommentar
Videoannonse
Annonse

Nå er jeg ingen kløppær på c++ men merker meg følgende:

 

if (gjett == tall)
		{
			cout << "Riktig, tallet var ";
			cout << tall;
			cout << ", og du brukte ";
			cout << teller;
			cout << " forsok";
			flagg = false;
			cin.get();
		}

	else
		{
			if (gjett > tall)
			{
				cout << "Lavere enn ";
				cout << gjett;
			}

			else
			{
				cout << "Hoyere enn ";
				cout << gjett;
			}
	}
}

 

kan skrives som:

 

		if (gjett == tall)
		{
			cout << "Riktig, tallet var ";
			cout << tall;
			cout << ", og du brukte ";
			cout << teller;
			cout << " forsok";
			flagg = false;
			cin.get();
		}

	else if (gjett > tall)
		{
			cout << "Lavere enn ";
			cout << gjett;
		}
	else
		{
			cout << "Hoyere enn ";
			cout << gjett;
		}
	}

 

og istedetfor:

teller += 1;

 

er det vanlig å bruke:

teller++;

 

Du må også ha feilhåndtering i forbindelse med input fra brukeren, slik du har det nå får du problemer om brukeren skriver noe annet enn heltall....

Lenke til kommentar

Er en del ting som kunne vært gjort bedre. Bra at du er interessert i å gjøre koden bedre! Har litt dårlig tid, men det som skriker høyest er:

- Du bruker gamle header-filer (stdlib.h, etc. C-biblioteker (som f.eks. stdlib.h) heter i C++ cstdlib, altså så sløyfer vi .h, slik som du har gjort med iostream)

- Programmering, dvs. kommentering, navn på variabler, etc. bør være på engelsk. Det er good practice.

- Variabler bør ha beskrivende navn. flagg er f.eks. lite beskrivende, alle vet at en boolean er et flagg.

- I C++ styrer man gjerne unna NULL, og bruker istedenfor "vanlig" 0.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...