我正在寻找有关从哪里开始为三消游戏创建计算机AI对手的指导/建议。多年来(从字面上看)这个问题困扰着我,因为我一直无法弄清楚。我已经用尽了Google来找到这个答案。
具有计算机对手的示例三消游戏包括:Puzzle Quest和Crystal Battle。
在创建类似AI的对手时使用了哪些编程方法,我如何将其应用于Unity 2D脚本?我从哪里/如何开始?我主要是在寻找教程或其他一些东西来使我朝正确的方向开始。我知道这不是一件容易的事,但我想逐步尝试,以便更好地理解。
提前致谢!
最佳答案
这里有两个问题:
如果您的董事会规模很小,则可以简单地将它们都强行使用。对于网格中的所有位置,请检查是否可以向上,向下,向左或向右移动网格,并具有移动生成器。 (您应该检查单人游戏版本已经实施的有效动作)。
选择最佳动作将有些棘手,因为您必须评估每个动作。常见的方法是MiniMax方法。总体思路是,您将在接下来的两轮中构建所有可能动作的树,并为每个叶子分配得分。然后,减小树的大小,以便如果AI转向移动,则父节点变为max(leaves),如果玩家移动,则变为min(leaves)。最终,您获得了扎根的分数。
像这样的基本AI编程的好资源是Chess Programming Wiki(您将不需要那里描述的90%。从MiniMax和AlphaBeta算法开始)。
另一方面,对于最简单的AI,您可以随机选择一个动作,而在计划动作时,三消游戏并不是最苛刻的要求。
编辑:事后,以下内容似乎是三消游戏的合理AI策略:
假设每次移动后添加的所有随机 gem 都无法以任何方式匹配:
关于artificial-intelligence - Unity 2D/3D-让计算机对手(AI)参加第3场比赛,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17261847/