在0和100之间做一个简单的猜谜游戏,但游戏在猜了2次后结束



代码为瑞典文btw.

int nyttal(int n){
int nyttal = rand() % 100 + 1;
return rand() % nyttal;
}
//Lak Lägg
void utforEnSpelomgang(){
const int n =100;
const int datornstal = nyttal(n);
int antalUtfardaGissningar = 0;  //number of guesses made by user
cout << "Datorn tänker på ett tal mellan noll och " << n << ". Gissa vilket!" << endl;
int g;
cin >> g;

if(g < datornstal){             //if g is smaller than the programs number it will tell you that your guess is smaller
cout << "Mindre" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärde gissningar: " << antalUtfardaGissningar << endl;
cin >> g;
}
if(g > datornstal){     //user guessed a bigger number
cout << "Större" << endl; 
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
cin >> g;

}
if(g == datornstal){
cout << "Du gissade rätt" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
}
//Lägg
}

每次我运行代码时,游戏在两次猜测后结束,第二次甚至没有输出我写的代码行。如何让代码继续运行,直到用户猜对为止?

您可以使用/添加while循环,如所示

void utforEnSpelomgang(){
const int n =100;
const int datornstal = nyttal(n);
int antalUtfardaGissningar = 0;
cout << "Datorn tänker på ett tal mellan noll och " << n << ". Gissa vilket!" << endl;
int g;
cin >> g;
while(g!= datornstal)//added this
{
if(g < datornstal){             //if g is smaller than the programs number it will tell you that your guess is smaller
cout << "Mindre" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärde gissningar: " << antalUtfardaGissningar << endl;
cin >> g;

}
if(g > datornstal){     //user guessed a bigger number
cout << "Större" << endl; 
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
cin >> g;


}
if(g == datornstal){
cout << "Du gissade rätt" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
break;//added this
}
}
//Lägg
}

在上面的程序中,我添加了两件事第一个是一个while,第二个

如果你想知道为什么总是生成相同的数字,请看看如何在C++中生成随机数?

请注意,最后一个if是多余的,因此您可以删除它,并将代码放在while循环之外的最后一个if中,如下所示:

while(g!= datornstal)//added this
{
if(g < datornstal){             //if g is smaller than the programs number it will tell you that your guess is smaller
cout << "Mindre" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärde gissningar: " << antalUtfardaGissningar << endl;
cin >> g;

}
else if(g > datornstal){     //user guessed a bigger number
cout << "Större" << endl; 
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;
cin >> g;


}

}
cout << "Du gissade rätt" << endl;
++antalUtfardaGissningar;
cout << "Antal utfärda gissningar: " << antalUtfardaGissningar << endl;

最新更新