我在运行鹿模拟器时遇到错误 这是代码
public void comparegrassDeer()
{
int[] grasspos = new int[3];
int[] deerpos = new int[2];
for (int i = 0;i < aog; ++i)
{
grasspos = g[i].getpos();
for (int j = 1; i <= aod;++i)
{
deerpos = d[j].getpos();
if ((deerpos[0] >= grasspos[0]) && (deerpos[0] <= grasspos[1]) && (deerpos[1] >= grasspos[2]) &&(deerpos[1] <= grasspos[3]))
{
if (g[i].checkFood() != 0)
{
g[i].foodLoss();
}
else
{
d[j].hunger();
}
}
}
}
}
}
主要问题在于comparedeergrass方法。 注意它在编译时有效,但在cmd窗口中我输入updatedeer时会产生错误。创建数组索引超出范围的错误。
答案 0 :(得分:0)
grasspos
是一个长度为3的数组。您调用(deerpos[1] <= grasspos[3])
,我猜,它应该是(deerpos[1] <= grasspos[2])
,因为grasspos[3]
需要一个数组长度为4。