2016-05-06 9 views
-2

現在、私は楽しいための簡単なゲームに取り組んでいます。ゲームでは、地図で歩き回って敵と出会って、ポケモンのものと同様の戦いに入ります。私はゲームのすべてを終えました。そして、私は今、プレイできない戦闘機(敵)にAIを実装したいと思っています。ゲームはかなりシンプルで、私や敵が行うことができる操作の点では非常に複雑です。敵が実行できるアクションは、攻撃をブロックして使用することです(攻撃は被害とコストの点で異なります)。だから私の質問は、どのようなデータ構造や方法がこの目的に最も適しているだろうか?私が言ったように、それは本当に複雑であることを意味するものではありませんが、やや難しいはずです。私はアクションリストのようなゲームでAIが実装されるいくつかの方法について読んだことがありますが、このようなゲームではこれらのメソッドが複雑になると感じています。シンプルなゲームのための人工知能

+1

あなたは賢明な答えを出すための情報をあまり与えていません。 – Frecklefoot

+0

何が必要ですか?私の質問は簡単です:単純なAIを実装する基本的な方法は何ですか? –

+1

AIは、何をしたいかに基づいて、何百万もの方法を実装することができます。敵の能力は何ですか? 「敵ができる行動は、攻撃をブロックして使用することです(攻撃は被害とコストの点で異なります)」という情報はあまりありません。彼らは動くことができますか?もしそうなら、どうですか?どちらの方向で?彼らはどこに移動するのかを決めるつもりですか?使用する攻撃をどのように決定するのか私が "ゲームAI"を考えるとき、私はデータ構造上のアルゴリズムと思う。 – Frecklefoot

答えて

1

@Frecklefootで指摘されているように、あなたの質問は非常に広いです。しかし、シンプルなゲームを持っている場合は、まずゲームの状態、敵が取ることができる行動、そしてそれらの間でどのように決定するのかを考えて、あなたの意思決定ツリーを組み立ててから、 if-thenまたはswitchステートメント

1

ここでは、説明したゲームの「AI」の非常に単純なクラスです。ご覧のとおり、これは部分的な解決策に過ぎません。あなたはAttackクラス(DamageとCostだけです)とAttackResultクラスを考え出す必要があります。

私はあなたの敵の依存関係としてこれを使用するので、彼を構築するときに脳を注入することができます。そうすれば、あなたはこのクラスから継承し、敵の異なる種類(いくつかのスマートな、いくつかの愚かな、など)を作成することができます。

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

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

    public AttackResult determineAttack() { 
     ... 
    } 
} 

は、あなたはそれが必要だと思い、他のどんな方法を追加します。いくつかのマッサージが必要かもしれません。私がJavaで開発して以来、しばらくしてきました。

関連する問題