我正在使用C++和Qt开发一个类似于《游戏王》的交易卡牌游戏。我已经完成了游戏的基本功能,如抽卡、攻击、召唤等。然而,我在AI部分遇到了困难,因为这是我第一次制作AI,我需要一些建议来开始。
我已经对这个主题做了一些研究,但结果数量庞大且令人困惑,我不知道该用什么来解决我的问题。
有没有我应该了解的算法,或者一些关于AI的一般技术?
回答:
首先,你应该有一个基准。可能你可以使用统计方法。如果你有关于游戏的数据,你可以将其转化为数据集。例如(因为我曾经玩过),记录每个玩家回合内的每个动作(设置多少张怪兽卡正面朝上/朝下,多少张魔法/陷阱卡,双方玩家回合结束时的生命值)。这样,你可以建立一个概率模型(在满足某些条件时选择一张怪兽卡)。
更复杂的模型可以引入强化学习,让模型自己找出应该采取的行动。这同样需要游戏数据。
然而,上述方法没有考虑到每张卡的文本信息。因此,对于你的第一个模型,你可能应该将游戏限制在只有普通怪兽的防御或攻击位置。然而,像DOTA 2这样的游戏也有许多选项和装备,具有各种效果,OpenAI开发的AI模型甚至能够在1对1的比赛中击败顶级玩家,他们使用了强化学习。你也可以进一步搜索这方面的信息。