C++ 关于简单游戏中人工智能的想法(例如:Tic-Tac-Toe)C++;

C++ 关于简单游戏中人工智能的想法(例如:Tic-Tac-Toe)C++;,c++,algorithm,artificial-intelligence,C++,Algorithm,Artificial Intelligence,我完全不知道如何在游戏中实现人工智能(我将把它应用到一个简单的井字游戏中) 我目前的想法是制作一系列可能的选项来赢得游戏(比如第1行中的3 X=赢或其他东西) 然后让计算机尝试用其中一个阵列填充网格,但如何从其他阵列中选择最合适的选项,以及如何使其智能/愚蠢(困难) 如果可能的话,我需要一个算法来使用,如果可能的话,我需要一本书来填补我大脑中的空白 致以最诚挚的问候对于像tic-tac-toe这样的简单游戏来说,暴力是一种可能。如果你有一个成功的举动,就去做;否则,如果你的对手将有一个获胜的移动

我完全不知道如何在游戏中实现人工智能(我将把它应用到一个简单的井字游戏中)

我目前的想法是制作一系列可能的选项来赢得游戏(比如第1行中的3 X=赢或其他东西) 然后让计算机尝试用其中一个阵列填充网格,但如何从其他阵列中选择最合适的选项,以及如何使其智能/愚蠢(困难) 如果可能的话,我需要一个算法来使用,如果可能的话,我需要一本书来填补我大脑中的空白


致以最诚挚的问候

对于像tic-tac-toe这样的简单游戏来说,暴力是一种可能。如果你有一个成功的举动,就去做;否则,如果你的对手将有一个获胜的移动块;否则,考虑每一个可能的动作递归。

< P>检查维基百科页面上,TiC Tac脚趾是实际使用的例子。

TC TA-趾是一种类型,而“共同”的方法是这样的游戏。它非常高效和快速,特别是当与一个好的启发式函数相结合时

有一些好消息

更新

尽管搜索算法如MIMPAX属于AI算法范畴,但我并不认为它们是人工智能算法。我认为Mimax是有效的搜索算法,所以如果你想要一个实际的人工智能算法,我会建议深入研究机器学习的概念,如:支持向量机、神经网络、遗传算法、遗传编程等等。几乎所有的机器学习算法都将是一种过度杀伤力,目的是制造一个Tic-Tac-Toe代理/机器人。

看,几乎所有的人工智能问题都归结为某种搜索。在tic-tac-toe的情况下,您正在搜索所有可能的板位置。有9个单元格和3个值,因此只有39个可能的电路板。如果你在一开始就生成它们,你的搜索就非常简单:从你当前的位置开始,看看所有能为你的球队带来胜利的途径,然后选择它。

Tic Tac Toe游戏是一个博弈论中的“已解决”游戏。这意味着有一种能力可以说是一场或另一场比赛的胜负


我想这可能会对您有所帮助。

以下是您的完整解决方案:


礼貌:

我读到一些基于Alpha/Beta搜索的Tic-Tac-Toe人工智能解决方案。不幸的是,我不记得在哪里读过这篇文章。你能解释一下什么是alpha/beta搜索吗?我是自学成才的,数学对我来说不是问题,但我的水平不允许我理解这样的事情(如果它是数学的话=P)谷歌是你的朋友:很抱歉,但我不擅长教育他人:)但是你应该关注到minimax search@Lirik-give的链接,它使用alpha/beta-search。Tic/Tac/Toe的麻烦游戏空间很小,你可以预先计算每一个可能的游戏(大多数游戏是另一个游戏的简单循环)。这是解决方案:想想看,这是我的想法,如果tic-tac-toe不能让我学习人工智能,那么我会转移到零和游戏中去,这比完全极小极大略好。利瑞克:它们肯定是人工智能算法。是什么让你认为搜索算法不属于人工智能算法的范畴。你认为深蓝用来击败世界象棋冠军的算法是什么?我认为您的困惑在于您将ML和AI分组在一起,就好像它们是同义词一样。您列出的所有算法都是ML,搜索算法不是ML,但AI除了ML算法之外肯定还包括许多其他东西。@Jeremy,您说得对,所以我已经澄清了我的答案。Minimax被认为是一种人工智能算法,但我觉得搜索算法和人工智能算法之间应该有更大的区别。这是我个人对这件事的看法。好吧,告诉我们什么是不是搜索算法的人工智能算法。@Charlie,它们仍然是搜索算法,但我认为ML算法更好地模拟智能,因为它们在获取局部最大值/最小值时更灵活,并且通常是不确定的。在ML中,相同的输入可能导致不同的算法。这种“行为”给人以创造力和智能的印象,而像Minimax这样的搜索算法几乎可以保证为相同的输入提供完全相同的输出;当我读到这个问题时,首先进入我脑海的是,然后我向下滚动,在这里看到了它:-)