2011年11月30日水曜日

Mario AI Competitionにて、プログラムからMarioを動かす in 2009

何度も右往左往

2009ver -> 2011ver -> 2009ver(今ここ)

とりあえず、参考サイト通りの動きができた

参照したのは、

> /src/ch/idsia/ai/agents/ai

以下にある
ForwardAgent.java
これと参考サイト様を見ながらやっていく。以下のようなソースを作成。
> /src/ch/idsia/ai/agents/ai/KanpeAgent.java



package ch.idsia.ai.agents.ai;

import ch.idsia.ai.agents.Agent;
import ch.idsia.mario.engine.sprites.Mario;
import ch.idsia.mario.environments.Environment;
import ch.idsia.utils.MathX;

/*
*By Kanpe777
*/


public class KanpeAgent extends BasicAIAgent implements Agent
{
private int trueJumpCounter = 0;

    public KanpeAgent()
    {
        super("KanpeAgent");
        reset();
    }

    public boolean[] getAction(Environment observation)
    {
if (trueJumpCounter > 16) {
                trueJumpCounter = 0;
                action[Mario.KEY_JUMP] = false;
            } else {
                trueJumpCounter++;
                action[Mario.KEY_JUMP] = true;
            }

        action[Mario.KEY_RIGHT] = true;

return action;
    }
}

このファイルを作成して、AIMarioのトップディレクトリにて
>ant
コマンドを実行、BUILD SUCCESSFULがでるはず
>cd classes
にて、
>java  java ch.idsia.scenarios.Play ch.idsia.ai.agents.ai.KanpeAgent
これで定期的にジャンプをするMarioができる。

これをGAでやるため、メタプログラミングをするか迷ったが、既に学習プログラムがある。
もともとに入っている。
次は、NNで学習しているソースを読みたいと思う。



0 件のコメント:

コメントを投稿