[英]Tic Tac Toe Game: How to loop it?
目前正在制作Tic Tac Toe Game的游戲遇到了一個問題,即在玩家獲勝后循環使用該功能。 我嘗試使用exit(1);
但是,這只是退出整個程序,並且不允許循環。 我想要退出游戲,然后用是/否問題提示用戶是否循環游戲。 該函數的外觀如下。
void checkwin(char drawTable[]){
if(drawTable[0] == 'X' && drawTable[1] == 'X' && drawTable[2] == 'X'){
cout << PLAYER1.name << " won" << endl;
exit(1);
}
else if(drawTable[3] == 'X' && drawTable[4] == 'X' && drawTable[5] == 'X'){
cout << PLAYER1.name << " won" << endl;
exit(1);
}
else if(drawTable[6] == 'X' && drawTable[7] == 'X' && drawTable[8] == 'X'){
cout << PLAYER1.name << " won" << endl;
exit(1);
}
else if(drawTable[0] == 'X' && drawTable[4] == 'X' && drawTable[8] == 'X'){
cout << PLAYER1.name << " won" << endl;
exit(1);
}
else if(drawTable[2] == 'X' && drawTable[4] == 'X' && drawTable[6] == 'X'){
cout << PLAYER1.name << " won" << endl;
exit(1);
}
else if(drawTable[0] == 'X' && drawTable[3] == 'X' && drawTable[6] == 'X'){
cout << PLAYER1.name << " won" << endl;
exit(1);
}
else if(drawTable[1] == 'X' && drawTable[4] == 'X' && drawTable[7] == 'X'){
cout << PLAYER1.name << " won" << endl;
exit(1);
}
else if(drawTable[2] == 'X' && drawTable[5] == 'X' && drawTable[8] == 'X'){
cout << PLAYER1.name << " won" << endl;
exit(1);
}
else if(drawTable[0] == 'O' && drawTable[1] == 'O' && drawTable[2] == 'O'){
cout << PLAYER2.name << " won" << endl;
exit(1);
}
else if(drawTable[3] == 'O' && drawTable[4] == 'O' && drawTable[5] == 'O'){
cout << PLAYER2.name << " won" << endl;
exit(1);
}
else if(drawTable[6] == 'O' && drawTable[7] == 'O' && drawTable[8] == 'O'){
cout << PLAYER2.name << " won" << endl;
exit(1);
}
else if(drawTable[0] == 'O' && drawTable[4] == 'O' && drawTable[8] == 'O'){
cout << PLAYER2.name << " won" << endl;
exit(1);
}
else if(drawTable[2] == 'O' && drawTable[4] == 'O' && drawTable[6] == 'O'){
cout << PLAYER2.name << " won" << endl;
exit(1);
}
else if(drawTable[0] == 'O' && drawTable[3] == 'O' && drawTable[6] == 'O'){
cout << PLAYER2.name << " won" << endl;
exit(1);
}
else if(drawTable[1] == 'O' && drawTable[4] == 'O' && drawTable[7] == 'O'){
cout << PLAYER2.name << " won" << endl;
exit(1);
}
else if(drawTable[2] == 'O' && drawTable[5] == 'O' && drawTable[8] == 'O'){
cout << PLAYER2.name << " won" << endl;
exit(1);
// }
// else
//{
// cout << "It's a TIE" << endl;
// }
}
使用while循環和另一個函數獲勝(重構代碼並退出條件)。
main() {
while(1){
//do everything here
//when someone wins call
someOneWon(name);
}
}
功能
void someOneWon(string name){
char input;
cout << name << " won" << endl;
cout << "would you like to play another game ?(Y/N)"<<endl;
do {
input = getchar();
putchar (input);
}while( input != 'Y' && input != 'N');
if (input == 'Y')
return; // reinitilaize the game, set drawTable to starting point
else
exit(0);
}
你可以做這樣的事情。 這是在C#中。 我確定您可以將其轉換為c ++。
string sUserInput = "y";
while(sUserInput.Equals("y")
{
//Logic of your code.
Console.WriteLine("Do you play again?")
sUserInput = Console.Readline();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.