我做了一个Tic-Tac-Toe 2 名玩家的游戏。现在,我想给游戏人工智能。
这样游戏就可以在1 位玩家和计算机之间玩了。
请帮助我如何开始?
最佳答案
Tic Tac Toe 与其说是一个人工智能,不如说是一个查找表:对于每个可能的棋盘布局,找到最佳位置。
XKCD has such a lookup table .基本上每个电路板布局都有一个唯一的 ID 和设置下一个标记的字段地址。维基百科有 that table另一种格式。
表格是这样工作的:X 在前,然后是 O。 X 将他的 X 放入 9 个单元格之一。当 O 消失时,现在有 9 种可能的电路板布局,具体取决于哪个 Cell 具有 X:
X | |
----+----+----
| |
----+----+----
| |
如果你看O的 map ,里面有9个大格子,左上角的那个在左上角有X,所以就用那个。将 O 放在中间。
现在当X再去的时候,它需要找到这个棋盘布局:
X | |
----+----+----
| O |
----+----+----
| |
你会在中间找到这个。红色是在 XKCD 图像中放置 X 的位置,这表明您将其放置在右下方:
X | |
----+----+----
| O |
----+----+----
| | X
现在,O又去找上面的棋盘布局,在左上角大格子的右下角小格子里。 O需要放在中间底部:
X | |
----+----+----
| O |
----+----+----
| O | X
等等。该图是嵌套的,起初有点难以阅读(单击它可放大),但如前所述:您创建了一个查找表,其中包含每个独特的电路板布局和放置下一个标记的信息。
但这创造了一个完美的对手:计算机永远不会输。如何让他更人性化就是微调(例如,随机丢弃选择并将标记放在随机单元格中)
关于c# - 使用 C# 的 Tic-Tac-Toe 中的人工智能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366858/