Aloha!
Ich bin Umsteiger auf Java, und habe hier gerade ein kleines Problem.
Ich habe ein 2Dimensionales Array, und will nach Eingabe in der Konsole entweder ein Feld nach Rechts, Links, Oben oder Unten springen.
Rechts und Links funktionieren ohne weitere Probleme, bei Oben und Unten erhalte ich jedoch die nette "Index out of bounds" Fehlermeldung.
(Der folgende Code enthält erstmal nur die Methode moveDown())
Ich sehe wohl den Wald vor lauter Bäumen nicht.
Witzig auch: benutze ich ein anderes Zeichen, funktioniert der Spaß.
Nur wenn ich im unteren Feld das gleiche Zeichen ausgeben möchte (hier: O), bekomme ich die Fehlermeldung. ???:L
Hier nun der Code:
(Der ganze Code ist nun wirklich nur auf das wichtigste heruntergekürzt. Das ganze wird dann in einer Klasse Plane aufgerufen.
Ich bin Umsteiger auf Java, und habe hier gerade ein kleines Problem.
Ich habe ein 2Dimensionales Array, und will nach Eingabe in der Konsole entweder ein Feld nach Rechts, Links, Oben oder Unten springen.
Rechts und Links funktionieren ohne weitere Probleme, bei Oben und Unten erhalte ich jedoch die nette "Index out of bounds" Fehlermeldung.
(Der folgende Code enthält erstmal nur die Methode moveDown())
Ich sehe wohl den Wald vor lauter Bäumen nicht.
Witzig auch: benutze ich ein anderes Zeichen, funktioniert der Spaß.
Nur wenn ich im unteren Feld das gleiche Zeichen ausgeben möchte (hier: O), bekomme ich die Fehlermeldung. ???:L
Hier nun der Code:
(Der ganze Code ist nun wirklich nur auf das wichtigste heruntergekürzt. Das ganze wird dann in einer Klasse Plane aufgerufen.
Java:
public class Level {
public char[] [] mapData = {
{'O', 'x', 'x', 'x'},
{'x', 'x', 'x', 'x'},
{'x', 'x', 'x', 'x'},
{'x', 'x', 'x', 'x'}
};
public int i;
public int j;
public Level(char[][] mapData) {
this.mapData = mapData;
}
void moveDown() {
for (i = 0; i < this.mapData.length; i++) {
for (j = 0; j < this.mapData[i].length; j++) {
if (this.mapData[i][j] == 'O') {
this.mapData[i + 1][j] = 'O';
this.mapData[i][j] = 'x';
break;
}
}
}
}
}