2013-03-09 106 views
-4

我得到一個錯誤,當我跑我的鹿模擬器 這裏是代碼Java數組錯誤(二維數組)

 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時會產生錯誤。創建數組索引超出限制的錯誤。

+1

的長度的陣列添加堆棧跟蹤.. – uba 2013-03-09 13:57:23

+4

請爲您的班級名稱使用班級名稱公約。還有太多的代碼可能與問題無關。嘗試只包含您認爲會導致問題的代碼以及堆棧跟蹤。 – 2013-03-09 13:58:03

+2

並尊重Java命名約定。類以大寫字母開頭。變量是駱駝式的。 – 2013-03-09 13:58:38

回答

0

grasspos是具有3的長度的陣列你打電話(deerpos[1] <= grasspos[3])其中,我想,應該是(deerpos[1] <= grasspos[2]),因爲grasspos[3]將需要用4.