variabel besvär!
Hej!
jag började plugga programmering 1 i måndags och har nu stött på ett problem som gör att jag inte kommer vidare. Jag ska göra ett enkelt spel där användaren ska tänka på ett tal mellan 1-100. Efter varje svar ska användare meddela datorn om svaret är rätt, lågt eller högt.
Jag har fått till hur jag vill att programmet ska se ut men datorn fortsätter att gissa på 50 oberoende på om jag svara 1,2 eller 3. 50 ska vara datorns första gissning men jag får inte riktigt till det därifrån.
Jag har lusläst sidorna i min lärobok och grottat igenom olika tutorials men blir inte klokare. Jag lägger upp min kod nedan och så kanske jag kan få en spark i rätt riktning (bortse från hur koden ser ut, ska snyggas till när jag fått det att funka)
Väl mött!
#include <iostream>
using namespace std;
int main()
{
int min = 1; // Min tal är 1
int max = 100; // MAx tal är 100
int gissning = ((min + max)/2); /* datorns gissning. min+max/2.
Datorns nya min-max baseras på senaste svar*/
int antal = 0; // Antal gissningar datorn får, max är 7
int nr = 0;
cout << " Tank pa ett tal mellan 1-100, datorn ska sedan forsoka gissa ditt tal " << endl;
cout << " TRyck enter for att borja" << endl;
cin.get();
while (nr != 1) {
cout << "Jag gissar pa nummer:" << gissning << endl;
cout << " tryck 1 om gissningen ar ratt " << endl;
cout << " TRyck 2 om talet ar hogre" << endl;
cout << " TRyck 3 om talet ar lagre" << endl;
cout << "Tryck Enter for att borja" << endl;
antal++;
cin >> nr;
cin.get();
}
if (nr == 1) {
// När datorn gissar rätt nummer
cout << "Hurra! Jag gissade ratt pa:" << antal << "Forsok" << endl;
cin.get();
return 0;
}
if (nr == 2) {
// När datorn gissar ett för lågt nummer
gissning=((gissning+max) / 2);
antal++;
}
if (nr == 3) {
// När datorn gissar ett för högt nummer
gissning=((min+gissning) / 2);
antal++;
}
cin.get();
cin.get();
}