我正在使用 Unity3D 开发游戏《最终幻想 VIII》中看到的迷你游戏 Triple Triad。
基本游戏是一个 3x3 网格,玩家和 NPC 手里拿着 5 张牌。目标是在棋盘被填满时持有最多的牌。卡片的顶部、底部、左侧和右侧有 4 个数字。玩家将一张牌放在网格上,另一位玩家可以将一张牌放在它旁边,然后将比较牌上的数字(例如,如果一张牌在中间,而对手在它的左边打了一张,对手卡的右值将与已经存在的卡的左值进行比较)。如果一张牌大于另一张牌,则玩家将“拿走”对手的牌。
关于三重三合会的更多细节可以在这里看到:http: //finalfantasy.wikia.com/wiki/Triple_Triad
我目前正在为单人游戏设计 AI,以便人类可以与 NPC 对战。我已经决定开发 AI 的最佳方式是使用带有 alpha-beta 修剪的 Minimax 算法,以便轮流为 AI 找出最佳可能的移动。
我遇到的问题是,我在互联网上看到的大多数示例都显示了 tic-tac-toe 的评估器功能。这比三元组评估器要简单得多,因为该函数必须考虑卡片上的值以及正在播放的位置(例如,拿走一张敌人的卡片)。
有没有人对我如何编写这个评估器函数有任何提示?或者至少我怎样才能将这个站点的代码改编成一个可以评估我的板子的三元组?
http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaGame_TicTacToe_AI.html