Java 吃豆人,让鬼魂追吃豆人
所以,现在在Java中,对于一个项目,我必须编写四个幽灵的代码,让它们追逐Pacman。这是我现在掌握的密码。当我运行它时,我得到一个错误,返回操作[I]中的变量“I”找不到。有人知道为什么会这样吗?这是我的密码Java 吃豆人,让鬼魂追吃豆人,java,artificial-intelligence,pacman,Java,Artificial Intelligence,Pacman,所以,现在在Java中,对于一个项目,我必须编写四个幽灵的代码,让它们追逐Pacman。这是我现在掌握的密码。当我运行它时,我得到一个错误,返回操作[I]中的变量“I”找不到。有人知道为什么会这样吗?这是我的密码 public int[] clyde(Game game) { Defender clyde = game.getDefender(3); Attacker pacman = game.getAttacker(); int direction = clyde.
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];
public int[]克莱德(游戏)
{
Defender clyde=game.getDefender(3);
攻击者pacman=game.get攻击者();
int direction=clyde.getDirection();
direction=clyde.getNextDir(pacman.getLocation(),true);
int[]actions=新int[game.NUM_DEFENDER];
列出敌人=game.getDefenders();
int x=0;
if(clyde.isVulnerable())
{
for(int i=0;i
变量i
超出该行的范围。您在forloop中定义i
,在forloop中探索每个动作/重影。循环结束后,i
不再定义
编辑:既然你的函数返回
int[]
,你不应该返回actions
(一个包含每个重影动作的数组)而不是单个动作吗?那么,它应该是“return actions;”吗?@AnnaBelle绝对(如果我正确理解代码的话)@AnnaBelle这是正确的,看看您的返回类型,它是一个数组,通过编写操作[i],您也应该在编译时得到一个错误。如果没有代码,您的问题就没有意义。因此请不要删除它(请参阅)。