我正在开发html5 5/JavaScript中的两人棋盘游戏。两个玩家版本已经接近完成。我想添加单机模式,其中计算机将是对手。此游戏将在单一浏览器中进行(没有服务器端集成)。
我是AI的新手。我想要一些在JavaScript游戏中AI实现的指导方针,我应该从哪里开始?
请帮帮忙。
编辑:游戏是巴格查尔
谢谢你的回答:我已经在百货游戏中实现了Minimax。这里。
发布于 2011-02-01 20:40:32
对于巴格查尔,您可能希望对α-β修剪采用极小最大方法。
这个算法有很多很好的资源,但是这里有一个关于带有α-β剪枝的Minimax的CS背诵。我个人不认为这是一个AI算法,但是在AI的介绍中经常会讨论这个问题。
或者,你可以训练一个实际的人工智能算法来玩游戏(神经网络,遗传算法等),但是对于像Bagh-Chal这样的游戏来说,这种方法似乎有点不切实际。
发布于 2011-02-01 20:11:56
第一步:学习(A) JavaScript。
第二步:学习(B)棋盘游戏的人工智能算法。
第三步:在A中实现B。
可选步骤4:选择另一个棋盘游戏,然后转到第二步。
发布于 2011-02-01 21:03:16
Lirik提到的带有Alpha-beta剪枝的Minimax是一个很好的起点,但是如果您不熟悉它,则需要一些时间来处理它。
或者,如果你有一个完美的记忆,并且可以快速计算并尝试实现,你可以考虑如何玩这个游戏。好处是,这通常更容易理解。
Minimax可能会导致更短但更难理解的代码(对于那些不熟悉它的人来说),根据游戏的不同,如果游戏足够简单的话,它可能会导致玩一个完美的游戏(然而,它也有一个不利的缺点,就是不赞成输而不赢,因为它假设对手也会打得很好)。
因为这听起来像是一个完全信息的游戏(所有玩家都可以看到整个棋盘),一个具有无限前瞻性的适当实现的Minimax可以给出一个永远不会失败的人工智能(假设无限的计算时间)。在使用Minimax的游戏中,难度级别通常取决于算法向前看了多少步。如果游戏不是超级简单的(这就是为什么现在还没有一个完美的棋盘来玩人工智能,我想我上次检查过,在我读这篇文章的时候,在最快的计算机上需要两千年的时间,很抱歉没有引用)。
https://stackoverflow.com/questions/4867413
复制相似问题