我需要做一个猜测游戏,程序生成一个随机数,用户必须猜出这个数字。如果用户在少于10次的猜测中猜出该数字,则该程序祝贺他们并让他们知道他们未满10次猜测。如果他们超过10个猜测,那么它让他们知道它是在10以上,等等。麻烦猜谜游戏
我面临的问题是,如果,例如,用户猜测3次尝试的数字,然后决定再次玩全新的其他数字,而这一次在8次尝试中猜出它,而不是仍然祝贺他们,因为它在10次尝试之下,它计数了前一次游戏的3次尝试。然后,这个计划会让他们告诉他们他们已经超过了10次,尽管他们不是。我不知道如何解决这个问题。我到目前为止所做的代码如下:
int main()
{
srand(time(0));
int guess;
int number;
char selection = 'y';
int numberOfGuesses=0;
while(selection == 'y' || selection == 'Y')
{
number = rand() % 1000 + 1;
cout << "I have a number between 1 and 1000.\nCan you guess my number?\nPlease type your first guess: ";
cin >>guess;
do
{
if(number > guess)
{
cout << "Too low. Try again: " << endl;
cin >> guess;
numberOfGuesses++;
}
if (number < guess)
{
cout << "Too high. Try again: " << endl;
cin >> guess;
numberOfGuesses++;
}
}
while(number != guess);
if(numberOfGuesses < 9)
{
cout << "You guessed the number in less than 10 guesses!\n Would you like to play again (y or n)?";
cin >> selection;
}
else if(numberOfGuesses > 9)
{
cout << "You guessed the number\n Would you like to play again (y or n)?";
cin >> selection;
}
else if(numberOfGuesses == 9)
{
cout << "You guessed the number.\n Would you like to play again (y or n)?";
cin >> selection;
}
}
return 0;
}
凡'numberOfGuesses'被清零? – Vishal
您可以使用'else if(numberOfGuesses> = 9)'来摆脱一些代码重复。 –