吃豆子,让鬼魂追逐吃豆子

时间:2017-12-10 23:42:55

标签: java artificial-intelligence pacman

所以,现在在Java中,对于一个项目,我必须编码四个鬼并让他们追逐Pacman。这是我现在的代码。当我运行它时,我得到的错误是返回actions [i]中的变量“i”无法找到。有谁知道为什么会这样?这是我的代码。

public int[] clyde(Game game)
{

    Defender clyde = game.getDefender(3);
    Attacker pacman = game.getAttacker();
    int direction = clyde.getDirection();
    direction = clyde.getNextDir(pacman.getLocation(), true);
    int[] actions = new int[game.NUM_DEFENDER];
    List<Defender> enemies = game.getDefenders();
    int x = 0;
    if (clyde.isVulnerable())
    {
        for (int i = 0; i < actions.length; i++)
        {
            List<game.models.Node> powerpills = game.getPowerPillList();
            Defender defender = enemies.get(i);
            List<Integer> possibleDirs = defender.getPossibleDirs();

            if (possibleDirs.size() != 0)
            {
                actions[i] = possibleDirs.get(Game.rng.nextInt(possibleDirs.size()));
                for (int j = 0; j < powerpills.size(); j++)
                {
                    powerpills = game.getPowerPillList();
                    actions[i] = clyde.getNextDir(pacman.getLocation(), true);

                }
            }
            else
                clyde.getNextDir(pacman.getLocation(), false);

        }



    }
    return actions[i];

1 个答案:

答案 0 :(得分:2)

变量i超出了该行的范围。您可以在forloop中定义i,在其中探索每个动作/幽灵。循环结束后,不再定义i

编辑:由于你的函数返回int [],你不应该返回actions(一个包含每个幽灵动作的数组)而不是单个动作吗?