2016-04-08 85 views
0

我創建了一個程序,它將生成一個單詞搜索遊戲,但我仍處於早期階段。我已經從文本文件中獲取了所有輸入,並將其轉換爲一個數組,該數組提供該單詞,其初始行和列起始點以及其水平或垂直位置。我已經開始了一種新的方法來創建基本的拼圖數組,其中只包含要隱藏的單詞。我的問題是,即時通訊始終獲得:在我旁邊的代碼主要方法ArrayIndexOutOfBoundsException的原因

displayPuzzle(title, createPuzzle(11, 26, words)); 

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 
    at WordSearch.createPuzzle(WordSearch.java:50) 
    at WordSearch.main(WordSearch.java:25) 

的代碼片段,是問題如下:

public static char[][] createPuzzle(int rows, int cols, Word[] words) { 
    char[][] puzzle = new char[rows][cols]; 
    for (int i = 0; i <= 9; i++) { 
     int xcord = words[i].getRow(); 
     int ycord = words[i].getCol(); 
     if (words[i].isHorizontal() == true) { 
      String word = words[i].getWord(); 
      for (int j = 0; j < word.length(); j++) {     
       puzzle[xcord + j][ycord] = word.charAt(j); 
      } 
     } else { 
      String word = words[i].getWord(); 
      for (int k = 0; k < word.length(); k++) { 
       puzzle[xcord][ycord + k] = word.charAt(k); 
      } 
     }  
    } 
    return puzzle; 
} 

public static void displayPuzzle(String title, char[][] puzzle) { 
    System.out.println("" + title); 
    for(int i = 0; i < puzzle.length; i++) { 
     for(int j = 0; j < puzzle[i].length; j++) { 
      System.out.print(puzzle[i][j] + " "); 
     } 
     System.out.println(); 
    } 
} 

與創建單詞數組。

+0

這是第50行嗎?你確定你的話有10個項目嗎? – njzk2

+0

50行是拼圖[xcord + j] [ycord] = word.charAt(j); 我的單詞數組恰好有10個項目 –

回答

1
puzzle[xcord + j][ycord] = word.charAt(j); 

如果xcord是8且j> 1,那麼您會得到一個索引超出界限的錯誤,因爲您的拼圖板只有9行。

你需要確保你的話不會超越謎的界限。