Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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控制台应用程序_C#_Project - Fatal编程技术网

C#Tic Tac Toe控制台应用程序

C#Tic Tac Toe控制台应用程序,c#,project,C#,Project,我用c#创建了一个简单的Tic-Tac-Toe游戏,可以在单人模式和双人模式下玩 我将电脑编程为正确反应(在电脑与玩家模式下),但我认为我的代码比它应该的大得多,因为我所做的是手动检查每个可能的组合,似乎无法找到如何最小化代码 以下是makeComputerMove()函数: 变量说明: 字符[,]板:二维数组,包含“X”和“O” char shape:这是我用来确定优先移动的形状,首先我将它设置为“O”,这样计算机将尝试获胜。如果它赢不了,它会试图阻止。如果没有要阻止的内容,它将尝试在板上的另

我用c#创建了一个简单的Tic-Tac-Toe游戏,可以在单人模式和双人模式下玩

我将电脑编程为正确反应(在电脑与玩家模式下),但我认为我的代码比它应该的大得多,因为我所做的是手动检查每个可能的组合,似乎无法找到如何最小化代码

以下是makeComputerMove()函数:

变量说明:

字符[,]板:二维数组,包含“X”和“O”

char shape:这是我用来确定优先移动的形状,首先我将它设置为“O”,这样计算机将尝试获胜。如果它赢不了,它会试图阻止。如果没有要阻止的内容,它将尝试在板上的另一个“O”附近设置一个“O”

位置p:包含值行和列的对象

谢谢

编辑:现在我看到人们在想我希望你重写我的代码。我只是添加了它,这样你就可以看到我做了什么。我只是想问一些提示(通过不同的方式来解决问题)。

阅读这里的算法,以获得大致的想法。 它基本上是通过可能的移动回溯,并将每个可能的移动预测到所有可能的移动,然后进入一定数量的移动(ai深度)。这使用递归。
由于这是Tictaoe,您可能会失去“深度”并将“结束”作为停止条件。

您需要在此处发布代码审查请求:因此您实际上是要求我们重写您的应用程序?我要求的是提供与我不同的思维方式,而不是编写代码,因为它对我的学习没有任何价值