gpt4 book ai didi

c++ - Tic Tac Toe游戏,用C++发行,具有再次播放功能

转载 作者:行者123 更新时间:2023-12-02 09:59:20 31 4
gpt4 key购买 nike

我是一个非常入门的人,这个问号是针对井字游戏的一个问题。当我完成第一个游戏时,该功能起作用。它问我是否要再玩一次。但是在第二局结束后,程序结束,告诉我“玩家x赢了”,而没有问是或否的问题。您能帮我解决这个问题吗?
我将只插入该项目的特定部分,因为该站点不允许我全部插入。如有必要,我将插入项目的其他部分。

void askPlayAgain(string firstPlayer, string secondPlayer)
{

char option;
do {
cout << "Play again? Y for yes, N for no" << endl;
cin >> option;
break;
} while (option != 'Y' || option != 'y' || option != 'N' || option != 'n');

if (option == 'Y' || option == 'y') {
initializeTable();
startGame(firstPlayer, secondPlayer);
}
else {
exit(0);
}
}

最佳答案

让我们考虑一下您的while条件-甚至只是那些是:

while (option != 'Y' || option != 'y')
在什么情况下这可能是错误的?使用或,只有在两个条件都为假的情况下才会发生。但是,一个字符不可能既是“Y”又是“y”。
相反,您想要AND在这里:
while (option != 'Y' && option != 'y' && option != 'N' && option != 'n');
甚至更清洁的可能是:
std::string good_inputs = "YyNn";
do {
// ...
} while (good_inputs.find(option) == std::string::npos);
但是, 都不会运行!您的while循环中有一个 break,因此永远不会检查该条件。我不确定您的想法在那里,但是应该删除该想法。

关于c++ - Tic Tac Toe游戏,用C++发行,具有再次播放功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63490145/

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