猜谜游戏有麻烦
Trouble with guessing game
我需要做一个猜谜游戏,程序生成一个随机数,用户必须猜出这个数字。如果用户猜出的数字少于 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 numbern 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;
}
问题是您没有重置计数器。只需将int numberOfGuesses=0;
放在while
循环中:
while(selection == 'y' || selection == 'Y')
{
int numberOfGuesses=0;
....
}
您需要
在每场比赛前将numberOfGuesses
设置为 0。您的程序仅在程序首次启动时设置一次。
您不会在每轮后将numberOfGuesses
重置为零。您可以使用以下几种方法之一来解决问题。
-
在第一个
while
循环结束时将numberOfGuesses
的值重置为零。while(selection == 'y' || selection == 'Y') { ... numberOfGuesses = 0; }
-
在该
while
循环开始之前不要定义变量。将其定义为第一个语句并将其初始化为零。while(selection == 'y' || selection == 'Y') { int numberOfGuesses = 0; ... }
相关文章:
- 在C++游戏中与库存系统作斗争
- 换位表导致测试失败(但在游戏中运行良好)
- Craps游戏问题,忽略if语句
- 矢量下标超出SFML游戏中的范围
- 我是 c++ 的新手.学习基本知识后,我想做井字游戏.对于印刷板,我在下面写代码,但它显示错误
- 我在贪吃蛇游戏中收到了错误代码 -1073741571
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 我应该在简单的策略游戏中为各个派系使用类吗 - C++
- 游戏体验和升级
- 我的代码运行良好,但在游戏循环中中断
- 如何使用 SFML 在贪吃蛇游戏中定义游戏结束?
- 查找奇数平方和时遇到麻烦
- 我可以使用任何好的逻辑来阻止计算机将 O 放在井字游戏中的现有 X 上
- 将鼠标和键盘输入发送到 unity3d 游戏 (Rust)
- 在猜谜游戏 c++ 中不计算尝试次数
- 在C++不适用于猜数字游戏的情况下再次播放选项
- 遇到无效旅行的麻烦::d是游戏
- 循环麻烦.C 简单游戏
- 猜谜游戏有麻烦
- 麻烦与游戏的生命和动态数组,c++