我正在制作井字游戏,我创建了一个将 X 或 O 插入数组的函数。我的设计遇到了一个问题。我调用函数为 X 移动,但是当轮到下一个玩家时,我如何让它调用 O?
有没有办法在我放置 makeMove() 之后我可以以某种方式调用它来接受 O 轮而不是 X。因为正如你所看到的,如果我做 X 它总是会要求 X 而不是 O。怎么可能我让它选择拉入 X 或 O 转弯。
问题是我只需要一个可以移动的函数。
int main()
{
while(SOME CONDITION HERE)
{
printBoard();
cout << "Player X please choose a position: ";
makeMove('X');
cout << "Player O please choose a position: ";
makeMove('O');
}
}
int makeMove(char marker)
{
int choosePosition = 0;
cin >> choosePosition;
ticTacBoard[choosePosition - 1] = marker;
}
最佳答案
从这里开始:
int main()
{
while(SOME CONDITION HERE)
{
printBoard();
cout << "Player X please choose a position: ";
makeMove('X');
cout << "Player O please choose a position: ";
makeMove('O');
}
}
int makeMove(char marker)
{
int choosePosition = 0;
cin >> choosePosition;
ticTacBoard[choosePosition - 1] = marker;
}
请注意,您将要更改 SOME CONDITION HERE
部分,但您可以快速将其替换为 1
并获得与当前脚本相同的行为(实际上,更好一点)。
但您最终会希望在此处放置一些有意义的东西 - 一些东西会告诉程序停止提示玩家选择位置并宣布获胜者。
下面只是做同样事情的一种更简化的方式:
int main()
{
while(SOME CONDITION HERE)
{
printBoard();
makeMove('X');
makeMove('O');
}
}
int makeMove(char marker)
{
cout << "Player " << marker << " please choose a position: ";
int choosePosition = 0;
cin >> choosePosition;
ticTacBoard[choosePosition - 1] = marker;
return 0;
}
注意添加的return 0
——如果你不想返回一些东西,你应该让makeMove
返回void
,这样不要混淆。
关于c++ - 选择 X 或 O 移动井字游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8043850/