Algorithm 实现tic-tac-toe游戏的算法?

Algorithm 实现tic-tac-toe游戏的算法?,algorithm,Algorithm,可能重复: 我已经为两名玩家创建了一个井字游戏,即相互对抗。现在,我已经计划实施相同的游戏,但对电脑玩。那么有人能提出一些好的算法或想法来实现它吗?因为游戏很简单,你可以做一个搜索树。这是一棵在“你的移动”和“敌人的移动”之间选择的树。敌人总是选择对他们最好的,而你总是选择对你最好的。对于每个棋盘位置,如果最佳游戏结果分别为赢/输/平,则将其评级为“赢”/“输”/“平”。执行深度优先搜索(或任何搜索)并拾取分支。这就是击败大师级高手的复杂国际象棋程序的基本工作原理(尽管它们经过高度优化,并在优

可能重复:


我已经为两名玩家创建了一个井字游戏,即相互对抗。现在,我已经计划实施相同的游戏,但对电脑玩。那么有人能提出一些好的算法或想法来实现它吗?

因为游戏很简单,你可以做一个搜索树。这是一棵在“你的移动”和“敌人的移动”之间选择的树。敌人总是选择对他们最好的,而你总是选择对你最好的。对于每个棋盘位置,如果最佳游戏结果分别为赢/输/平,则将其评级为“赢”/“输”/“平”。执行深度优先搜索(或任何搜索)并拾取分支。这就是击败大师级高手的复杂国际象棋程序的基本工作原理(尽管它们经过高度优化,并在优秀的硬件上并行运行)。这就是我们所知道的

或者,您可以手动编写所有最佳动作代码(使用一个例程,通过旋转和翻转棋盘将其与已知动作进行比较)。只有500种可能性


然而,由于井字游戏是一个解决游戏,它将是相当无聊。如果电脑发挥出最佳效果,电脑将永远束缚你。由于Ti-Tac趾对5岁的孩子只有挑战性,你可能会考虑到你的游戏的观众:让电脑做出随机的非丢失动作可能是合理的。那么人类玩家至少有机会了。

因为游戏很简单,你可以做一个搜索树。这是一棵在“你的移动”和“敌人的移动”之间选择的树。敌人总是选择对他们最好的,而你总是选择对你最好的。对于每个棋盘位置,如果最佳游戏结果分别为赢/输/平,则将其评级为“赢”/“输”/“平”。执行深度优先搜索(或任何搜索)并拾取分支。这就是击败大师级高手的复杂国际象棋程序的基本工作原理(尽管它们经过高度优化,并在优秀的硬件上并行运行)。这就是我们所知道的

或者,您可以手动编写所有最佳动作代码(使用一个例程,通过旋转和翻转棋盘将其与已知动作进行比较)。只有500种可能性


然而,由于井字游戏是一个解决游戏,它将是相当无聊。如果电脑发挥出最佳效果,电脑将永远束缚你。由于Ti-Tac趾对5岁的孩子只有挑战性,你可能会考虑到你的游戏的观众:让电脑做出随机的非丢失动作可能是合理的。那么人类玩家至少有机会了。

一个搜索树,就像ninjagecko已经建议的那样,将是直接的和最佳的编码

但正如制作搜索树比手工编写所有最佳动作更有趣一样,我认为尝试机器学习方法会更有趣


例如,制作一个使用搜索树的程序会很酷。

像ninjagecko已经建议的那样,搜索树将是直接的,并且是编码的最佳选择

但正如制作搜索树比手工编写所有最佳动作更有趣一样,我认为尝试机器学习方法会更有趣


例如,制作一个使用的程序是很酷的。

重要的一点是算法在开始时的某个地方有“if game==全局热核战争:退出”重要的一点是算法有“if game==全局热核战争:退出”在起点的某个地方,维基百科上有一个最佳策略…维基百科上有一个最佳策略。。。