Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们如何在Javascript游戏中实现人工智能?_Javascript_Algorithm_Artificial Intelligence_Heuristics - Fatal编程技术网

我们如何在Javascript游戏中实现人工智能?

我们如何在Javascript游戏中实现人工智能?,javascript,algorithm,artificial-intelligence,heuristics,Javascript,Algorithm,Artificial Intelligence,Heuristics,我正在用html5/JavaScript开发一个两人的棋盘游戏。两人版几乎完成了。我想加入单人模式,电脑将成为对手。此游戏将在单一浏览器中进行(无服务器端集成) 我是人工智能的新手。我想要一些关于JavaScript游戏中AI实现的指南,我应该从哪里开始 请帮忙 编辑: 游戏是 谢谢你的回答:我已经在baghchal游戏中实现了Minimax 第1步:学习(A)JavaScript 步骤2:学习(B)棋盘游戏的AI算法 步骤3:在A中实现B 可选步骤4:选择其他棋盘游戏;然后进入第2步。我认为你

我正在用html5/JavaScript开发一个两人的棋盘游戏。两人版几乎完成了。我想加入单人模式,电脑将成为对手。此游戏将在单一浏览器中进行(无服务器端集成)

我是人工智能的新手。我想要一些关于JavaScript游戏中AI实现的指南,我应该从哪里开始

请帮忙

编辑: 游戏是

谢谢你的回答:我已经在baghchal游戏中实现了Minimax

第1步:学习(A)JavaScript

步骤2:学习(B)棋盘游戏的AI算法

步骤3:在A中实现B


可选步骤4:选择其他棋盘游戏;然后进入第2步。

我认为你最好从一个严格的人工智能算法开始,即对手在给定情况下总是做同样的事情

要获得真正的“人工智能”,您需要实现一个机器学习算法,该算法可以跟踪以前的输入,以及它是否是正确的决策,以便它能够变得更好。这是通过一种类似于.

的方法来完成的,因为您可能希望采用这种方法

关于这个算法有很多很好的参考资料,但这里是一篇CS背诵。一、 就个人而言,我不认为这是一个人工智能算法,但它经常在人工智能的介绍中讨论


或者,你可以训练一个实际的人工智能算法来玩游戏(神经网络、遗传算法等),但这种方法对于Bagh Chal这样的游戏来说似乎有些不切实际。

Lirik提到的带Alpha-beta修剪的Minimax是一个很好的开始,但如果你对它不熟悉,你需要一些时间来思考

或者,你可以考虑如果你有一个完美的记忆,可以做快速计算,并尝试实现这一点,你将如何玩这个游戏。好处是这通常更容易理解

Minimax可能会导致更短但更难理解的代码(对于那些不熟悉它的人来说),根据游戏的不同,如果游戏足够简单,可能会导致玩一个完美的游戏(但是它也有不输给赢的缺点,因为它假设对手也会玩得很完美)


因为这听起来像是一个完全信息的游戏(所有玩家在任何时候都可以看到整个棋盘),一个具有无限前瞻性的正确实现的极大极小可能会给出一个永远不会失败的AI(假设计算时间无限)。在使用Minimax的游戏中,难度水平通常取决于算法考虑的向前移动次数。如果游戏不是超简单的(这就是为什么还没有一个完美的国际象棋人工智能,我想上次我检查时,在我读这篇文章的时候,在速度最快的计算机上需要几千年的时间,对不起,没有引用)

没有人工智能。然而你可以模拟人的思维方式,但你不能强迫游戏代替你思考。在JavaScript中,您应该使用的是:函数、循环、变量、数组和字符串。计算机应在wiev的一个点上检查游戏,并计算最佳步数。例如,按一个属性对每个解决方案进行降序排序,并增加前十项的比率。然后再按其他步骤排序,再打分,在这两个时刻中,评级最高的一步将是最好的

创建双赢战略的另一种方法,但这对于一个人来说甚至很难实现

如果我给你举个例子会更好 每个人都知道XOX游戏

有一张3x3的桌子,你应该把3x或O排成一行才能赢

_|_|_
_|_|_
 | |
这是地图

这是一种胜利的方式

x|o|_
_|x|o
 |o|x
我想你现在记得了

那么服务器上的AI代表什么呢

当用户输入X或O(现在用户是X,服务器是O)时,服务器必须计算其情况的破坏程度

一排有两个X吗?如果是,机器必须在2 X的中间或末端放置一个O

如果一行中没有2 X,机器必须计算出某个地方有一个技巧

比如说

_|x|_
_|_|x
o| |
这是一个技巧,因为计算机必须将O带到左上角,否则机器将松动

所有这些都是人类在游戏中提出的问题(如果有其他说法)。 如果你想实现,你应该强迫自己记录你的想法

我首先搜索的是什么?首先我把X放在中间,因为这有很大的可能性


最重要的是要创造一个人工智能,你应该模拟你的思维方式。祝你好运。

为什么它与用其他语言实现它有什么不同?这个问题毫无意义。我所能看到的就是“教我人工智能”。这不是这个网站的目的。这个问题有点宽泛。你可能应该提供更多关于游戏类型、玩家做什么以及“AI”需要解决什么样的问题的细节。e、 g.路径查找?瞄准?合作?bhu1st,这是什么游戏?根据游戏类型,我们可能会为您提供一个AI实施的适当建议:这是一个策略、第一人称射击、棋盘游戏、纸牌游戏等吗?@Lirik这是一个棋盘游戏-感谢你没有提到JavaScript。。。只是开玩笑。但说真的,一点随机化可以创造奇迹,而且比机器学习算法简单得多。我在上面的评论中添加了一个我正在制作的游戏的链接,你能检查一下吗。对于这样的游戏,哪种棋盘游戏AI算法最适合作为开始?@bhu1st:似乎是一个有趣的游戏。你要么需要找到一个很好的方法来学习Bagh Chal,要么就用机器学习的方法来学习跳棋。JavaScript并没有对您可能选择的任何方法设置任何障碍,所以您可以