简单游戏的人工智能

时间:2016-05-06 17:52:46

标签: java artificial-intelligence game-engine

所以目前我正在开发一个简单的游戏以获得乐趣。在游戏中,你在地图中走动并遇到敌人,并进入类似于口袋妖怪的战斗。我已经完成了游戏中的几乎所有内容,现在我想为不可玩的战士(敌人)实施AI。游戏非常简单,在我或敌人可以做的动作方面几乎没有复杂性。敌人可以采取的行动是阻止和使用攻击(攻击在伤害和成本方面各不相同)。所以我的问题是,哪种数据结构或方法最适合此目的?正如我所说,这并不意味着真的很复杂,但它应该有些挑战。我已经了解了在动作列表等游戏中实现AI的一些方法,但我觉得这些方法对于像这样的游戏来说很复杂。

2 个答案:

答案 0 :(得分:1)

正如@Frecklefoot指出的那样,你的问题非常广泛。但是,如果你有一个简单的游戏,首先要为你的敌人组合一个决策树(考虑到游戏的状态,敌人可以采取的行动是什么以及它们如何决定)然后使用if-thenswitch语句实现。

答案 1 :(得分:1)

对于您描述的游戏,这是一个非常简单的“AI”类。如您所见,这只是一个部分解决方案。你必须提出攻击类(只是损坏和成本,对吧?)和AttackResult类。

我会将此作为你敌人的依赖,所以你可以在构建他时注入他的大脑。这样,你可以继承这个类并创建不同类型的敌人(一些聪明,一些愚蠢等):

public class FoeBrain {
    bool block;
    ArrayList[Attack] attacks;

    public FoeBrain() {
        block = false;
        attacks = new ArrayList[Attack]();
        ...
    }

    public AttackResult determineAttack() {
        ...
    }
}

添加您认为需要的其他方法。可能需要一些按摩;自从我用Java开发以来已经有一段时间了。