0

Also ich bin eine Art von "Game of Life" -Anwendung in Java und haben einige Probleme zu erkennen, wenn der Index außerhalb der Grenzen ist. Der folgende Code ist eine modifizierte Version von Noch eine Frage von SO.Überprüfen, ob der Index OutOfBounds in einem 2D-Array ist

2D-Array:

1,1,1,1 
1,1,1,1 
1,1,1,1 
1,1,1,1 

-Code

private void traverse() {  
     for (int i = 0; i < brickArray.length; i++) { 
      for (int j = 0; j < brickArray[i].length; j++) { 

       System.out.println(i - 1 + "," + j); 
       checkIfAllowed(i - 1, j); 

      } 
     } 
    } 

    public void checkIfAllowed(int row, int column) { 
    boolean incorrect = check(row) && check(column); 
    if (incorrect) { 
     System.out.println("Wall"); 
    } else { 
     System.out.println("Road"); 

    } 
} 

private boolean check(int index) { 
    return (index < 0 || index > board.getHeight()); 
} 

Ergebnis:

Verfahrgeschwindigkeit:

-1,0 
Road 
-1,1 
Road 
-1,2 
Road 
-1,3 
Road 
0,0 
Road 
0,1 
Road 
0,2 
Road 
0,3 
Road 
1,0 
Road 
1,1 
Road 
1,2 
Road 
1,3 
Road 
2,0 
Road 
2,1 
Road 
2,2 
Road 
2,3 
Road 

In diesem Beispiel sollten die 4 oberen Zellen "Wall" gedruckt haben, aber sie nicht.

+0

"check" in diesem Fall scheint zu implizieren ** falsch ** statt ** korrekt ** –

+0

'return (index <1 || index> board.getHeight());' Sie erkennen, dass die '0' ist weniger als '1', oder? – bradimus

+0

Wo definierst du 'board' und seine Methode' getHeight() '? – Dez

Antwort

0

Der Fall von negativen Namen und neutralen Namen (check).

Wenn eine Zeile oder Spalte falsch ist, sind die gesamten Koordinaten falsch.

Ich würde check hier draußen schreiben, auch jetzt muss die Platine mit getHeight in Schach sein.

Verwandte Themen