所以,现在在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];
答案 0 :(得分:2)
变量i
超出了该行的范围。您可以在forloop中定义i
,在其中探索每个动作/幽灵。循环结束后,不再定义i
。
编辑:由于你的函数返回int []
,你不应该返回actions
(一个包含每个幽灵动作的数组)而不是单个动作吗?