2012-03-25 63 views
0

我在c#中创建了一个简单的井字游戏,可以在1个玩家模式和2个玩家模式下玩游戏。C#井字游戏控制台应用程序

我编程计算机正确反应(在计算机vs.玩家模式),但我认为我的代码比它应该大得多,因为我所做的是我手动检查了每种可能的组合, t似乎找到了如何最小化代码。

这里是makeComputerMove()FUNC:https://gist.github.com/2192374

变量的说明:

炭[,]板:2D阵列,包含 'X' 和 'O'

炭形状:这是我用来确定优先级的方式,首先我将它设置为'O',这样计算机就会尝试获胜。如果它不能赢,它会尝试阻止。如果没有任何东西可以阻挡,它会尝试在板子上的另一个“O”附近设置一个“O”。

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

谢谢。

编辑:现在我看到人们都在想我要你重写我的代码。我只是添加它,所以你可以看到我做了什么。我只是要求提示(通过以不同方式接近问题)。

+0

你需要在这里发布你的代码审查请求:http://codereview.stackexchange.com/ – 2012-03-25 08:36:34

+0

所以你基本上要求我们重写你的应用程序? – 2012-03-25 08:37:11

+0

我所要求的是提供与我不同的思维方式,而不是书面的代码,因为它对我的学习没有任何价值 – Novak 2012-03-25 08:38:23

回答

1

阅读关于MinMax算法在这里得到的一般想法。 这基本上是通过可能的移动来回溯,并且可能移动到所有可能的移动,并且如此进入一定数量的移动(ai深度)。这使用递归。 由于这是TicTacToe,您可能会失去“深度”并将“结束”作为停止条件。