Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Tic Tac Toe如何在函数中调用2d数组?_C++ - Fatal编程技术网

C++ Tic Tac Toe如何在函数中调用2d数组?

C++ Tic Tac Toe如何在函数中调用2d数组?,c++,C++,所以我在做一个井字游戏,我遇到了一个问题,什么是自动取款机: 董事会 输入板 根据用户输入更新电路板 什么不起作用: Win detection(基本上我有一个函数,应该是使用棋盘2d阵列,然后确定游戏是否结束,这对我来说不起作用) 我如何调用这个函数 我目前的代码有什么改进吗 bool GameState(char a[3][3], bool gameOver) Github: 编辑:该函数现在运行良好,代码已更新,但现在它不会注册获胜状态 编辑2:win检测有效,但现在它只在它应

所以我在做一个井字游戏,我遇到了一个问题,什么是自动取款机:

  • 董事会
  • 输入板
  • 根据用户输入更新电路板
什么不起作用:

  • Win detection(基本上我有一个函数,应该是使用棋盘2d阵列,然后确定游戏是否结束,这对我来说不起作用)

  • 我如何调用这个函数

  • 我目前的代码有什么改进吗

    bool GameState(char a[3][3], bool gameOver)
    
Github:

编辑:该函数现在运行良好,代码已更新,但现在它不会注册获胜状态


编辑2:win检测有效,但现在它只在它应该注册后检测1圈,有点难以解释,所以我将给出一个例子:x在1、5和9中填充(从左上到右下形成一条对角线),并且在o移动后仅在1圈后注册win。

您可能需要写出所有的案例

if(a[0][0] == 'X' && a[0][1]=='X' && a[0][2] == 'X') //across top row
{
   //won
}
else if(a[1][0] == 'X' && a[1][1]=='X' && a[1][2] == 'X') //across middle row
{
   //won
}   
//etc...

在所有情况下,您都没有更新变量
gameOver

而不是

GameState(board, gameOver);
换成

gameOver = GameState(board, gameOver);

这可能是最好的答案CodeReview@StackExchange.comThat这不是我的问题,我的问题是如何将其实现到一个函数中。我会这样做,并在每次移动后调用GameState函数。我修复了所有问题,win detection现在可以工作,但它只在以后注册win 1移动,假设我在1、2和3号网格中有x,然后它只在o移动时才注册。很抱歉,你仍然不明白,我知道这是如何工作的,但它就是不工作,知道我的意思吗?看看我的代码,每次切换后我都会调用该函数,但它仍然没有注册为win::那么你不应该问如何实现该函数。你应该发布你的代码。是您的代码逻辑有问题。当您只提供函数头时,您希望人们如何帮助您改进代码?首先,我在实现函数时遇到问题,然后我解决了这个问题,现在我在使其工作时遇到了问题。@正如我所怀疑的,您没有更新您的标志。