我是一名大学生(一年级),我有一项任务是使用 ACM 库制作一款 Tic Tac Toe 主机游戏。我设法让它工作 Player VS Player。这项任务的另一部分要求我让它像 Player VS Computer 一样工作。老师告诉我们不要创造一个人工智能,而是让计算机总是赢或平。我该如何实现?我不认为使用大量 if 和 else 来实现它是不可能的。有没有更聪明的方法?
我创建了一个名为 Board 的构造函数,它具有创建、显示、更新游戏板、检查 X 或 O 是否获胜(或平局)以及检查用户输入的字符串(In为了玩,用户必须键入类似(row_space_column ---> 示例:“3 1”)的内容。我还创建了另一个文件(“TicTacToe.java”),它是游戏本身。
那么,你有什么看法呢? (我使用的语言是JAVA) (对不起我的英语,我是希腊人) 谢谢!
最佳答案
Tic-Tac-Toe 是 AI 编程的一个很好的例子,因为可能的移动数量相对较少。
此外,如果您玩得完美(您的 AI 希望做到的),您将永远获胜或打成平局。
您可以很容易地测试每一个可能的 Action ,直到有人获胜 - 然后您采取最佳 Action 。
也许你应该看看 MinMax Algorithm
还有很多 Tic-Tac-Toe 算法的示例实现。 (如果你想要,我可以给你一个 Pascal :D )
编辑:我found关于制作 Tic-Tac-Toe AI 的非常好的教程。
关于java - 井字游戏电脑玩家(非 AI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21551476/