【发布时间】:2013-09-26 03:32:22
【问题描述】:
我真的希望我的格式正确。我一直在研究这个猜谜游戏,效果很好。我唯一的问题是gameSummary 函数。它不会累加努力(例如,玩了 3 轮,一轮最多 15 次猜测,另一轮最多 5 次猜测,无论平均值如何),它会发布每场比赛的结果。
例子:
Total number of rounds: 1 The most number of guesses in one round: 10 The least number of guesses in one round: 0 Average number of guesses per round: -1.#IND Total number of rounds: 1 The most number of guesses in one round: 5 The least number of guesses in one round: 0 Average number of guesses per round: -1.#IND
这也弄乱了平均值,因为只计算了一场比赛。我感觉需要使用gameSummary(rounds, mostGuesses, leastGuesses, averageGuesses);,但我不知道我应该把它放在哪里,以便它计算总游戏的结果。有什么想法吗?
bool isTrue(int guess, int tries, int number,
int rounds, int mostGuesses, int leastGuesses, float averageGuesses)
{
char answer;
bool inGame = true; // states that the user is currently in the game
while (inGame == true)
{
if (guess < 1 || guess > 99)
{
cout << "Invalid guess." << endl;
cout << "Please take another guess: ";
cin >> guess;
}
else
{
if (guess > number)
{
cout << "Lower please: ";
cin >> guess;
tries++;
}
else if (guess < number)
{
cout << "Higher please: ";
cin >> guess;
tries++;
}
else if (guess == number)
{
cout << "Congratulations! " << guess << " is the number!!\n";
cout << "You guessed correctly in " << tries << " tries!!\n";
inGame = false; // once the game is won, the while loop breaks.
rounds++;
}
if (tries > mostGuesses)
{
mostGuesses = tries;
}
else if (tries < mostGuesses)
{
leastGuesses = tries;
}
}
}
cout << "do you want to play another round? ";
cin >> answer;
if (answer == 'Y' || answer == 'y')
{
game(); // replays the game if the user wants.
}
gameSummary(rounds, mostGuesses, leastGuesses, averageGuesses);
return false;
}
void gameSummary(
int rounds, int mostGuesses, int leastGuesses, float averageGuesses)
{
cout << "Total number of rounds: "
<< rounds << endl;
cout << "The most number of guesses in one round: "
<< mostGuesses << endl;
cout << "The least number of guesses in one round: "
<< leastGuesses << endl;
cout << "Average number of guesses per round: "
<< averageGuesses << endl;
}
【问题讨论】:
-
如果将每一轮的
tries的数量计算为totalTries,那么平均值将为totalTries/rounds。我希望你能用这个最小的提示完成你的作业。 (顺便说一句,您的代码中还有其他错误,但仅向您提供完整的解决方案并不能帮助您学习。) -
我对代码做了一些更改,基本上是totalTries的建议,但我不明白为什么,如果我玩两个游戏,它会运行totalTries两次。甚至断点都无法帮助我找出原因。
标签: c++