Java 一个简单的人工智能游戏

Java 一个简单的人工智能游戏,java,artificial-intelligence,game-engine,Java,Artificial Intelligence,Game Engine,所以现在我正在做一个简单的游戏。在游戏中,你在地图上四处走动,遇到敌人并进入类似于口袋妖怪的战斗。我已经完成了游戏中几乎所有的事情,现在我想为不可玩的战士(敌人)实现AI。游戏非常简单,就我或敌人可以做的动作而言,没有什么复杂性。敌人可能采取的行动是阻止和使用攻击(攻击的伤害和成本各不相同)。所以我的问题是,什么样的数据结构或方法最适合这个目的?正如我所说,这并不意味着真正复杂,但它应该有点挑战性。我读过一些AI在游戏中实现的方法,比如动作列表,但我觉得这些方法对于这样的游戏来说太复杂了 正如@

所以现在我正在做一个简单的游戏。在游戏中,你在地图上四处走动,遇到敌人并进入类似于口袋妖怪的战斗。我已经完成了游戏中几乎所有的事情,现在我想为不可玩的战士(敌人)实现AI。游戏非常简单,就我或敌人可以做的动作而言,没有什么复杂性。敌人可能采取的行动是阻止和使用攻击(攻击的伤害和成本各不相同)。所以我的问题是,什么样的数据结构或方法最适合这个目的?正如我所说,这并不意味着真正复杂,但它应该有点挑战性。我读过一些AI在游戏中实现的方法,比如动作列表,但我觉得这些方法对于这样的游戏来说太复杂了

正如@Frecklefoot所指出的,你的问题非常广泛。然而,如果你有一个简单的游戏,首先为你的敌人建立一个决策树(给定游戏的状态,敌人可以采取什么样的行动,以及如何在他们之间做出决定),然后使用
if then
switch
语句来实现为了你描述的一个游戏。正如您所看到的,这只是一个部分解决方案。你必须提出攻击等级(只是伤害和成本,对吗?)和攻击结果等级

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


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

您提供的信息太少,无法给出一个明智的答案。还需要什么信息?我的问题很简单:实现简单人工智能的基本方法是什么?人工智能可以基于您希望它做的事情实现数百万种方法。敌人的能力是什么?“敌人可能采取的行动是阻止和使用攻击(攻击的伤害和成本各不相同)”并不是很多信息。他们能移动吗?如果是,怎么做?朝哪个方向?他们将如何确定自己的行动方向?他们将如何确定使用哪些攻击?当我想到“游戏AI”时,我想到的是数据结构上的算法。可能的动作只有我提到的那些,没有移动或任何东西。那么,使用许多“如果”语句是个好主意吗?
public class FoeBrain {
    bool block;
    ArrayList[Attack] attacks;

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

    public AttackResult determineAttack() {
        ...
    }
}