gpt4 book ai didi

c++ - 如果用户对 C++ 说,如何提前结束循环

转载 作者:行者123 更新时间:2023-11-28 06:35:36 25 4
gpt4 key购买 nike

注意:这是家庭作业。

我正在尝试制作一个玩 Pig 游戏的程序! Pig 是一款具有以下规则的游戏:

1。第一个获得 100 游戏点数的人就是胜利者。
2. 轮到你掷骰子。如果您在任何掷骰中获得 1,则结束您的回合并将 0 添加到您的游戏得分。
3. 如果掷出 1 以外的任何值,您可以选择保留或播放。如果您玩游戏,您的掷骰会添加到您的 TURN SCORE 中,然后您会再次掷骰。如果您持有,您的 TURN SCORE 将添加到您的 GAME SCORE 中,并且该回合将传递给计算机。

游戏进行得很顺利,直到我遇到以下问题(见代码):

int player(){
char PlayAgain = 'Y';
int turn_score = 0;
while (PlayAgain != 'N' || PlayAgain != 'n'){
int dice;

srand(time(NULL));
dice = rand() % 6 + 1;
turn_score = turn_score + dice;

if (dice != 1){
cout << "You rolled a " << dice << "! Would you like to roll again? [Y/N]: ";
cin >> PlayAgain;
if (PlayAgain == 'N' || PlayAgain == 'n'){
/*END TURN AND return turn_score;*/
}
}
if (dice == 1){
cout << endl << "Oops! You rolled a 1! Your turn is ended, and you add nothing to your score.\n";
system("PAUSE");
/*END TURN, NO SCORE ADDED*/
}
}
}

如何让程序提前结束循环(如果游戏 HOLDS 或骰子 == 1)并返回正确的值(如果 HOLD,返回 turn_score。否则返回 0)? [参见两个注释部分]

最佳答案

您可以使用break 来跳出循环。既然你说你想返回“正确的值(value)”那么你应该做这样的事情:

关于第一个 if 子句

if (PlayAgain == 'N' || PlayAgain == 'n'){
/**Game-Specific logic here**/
return turn_score
}

第二个:

if (dice == 1){
cout << endl << "Oops! You rolled a 1! Your turn is ended, and you add nothing to your score.\n";
/**Game-Specific logic here**/
cin.get();
return turn_score;
}

return 语句不需要在函数的末尾,多个 return 语句可以在同一个函数中共存

关于c++ - 如果用户对 C++ 说,如何提前结束循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26832325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com