-4

运行 Deer Simulator 时出现错误,代码如下

        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();
                        }
                    }
                }
            }
        }
    }

主要问题在于比较草方法。请注意,它在编译时有效,但在我在 cmd 窗口中键入 updatedeer 时会产生错误。创建数组索引越界错误。

4

1 回答 1

0

grasspos是一个长度为 3 的数组。(deerpos[1] <= grasspos[3])我猜你应该调用它,(deerpos[1] <= grasspos[2])因为grasspos[3]它需要一个长度为 4 的数组。

于 2013-03-09T14:29:57.850 回答