Compiler-Fehler IndexOutOfBoundsException bei ArrayList

  • Themenstarter Themenstarter Kakashi
  • Beginndatum Beginndatum
K

Kakashi

Gast
Hallo Zusammen

Ich versuche Snake zu Programmieren, jedoch krieg ich bei der Move Methode immer die Fehlermeldung
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3

Ich weiss jedoch nicht wieso.

Hier ist mein Code:
Java:
public void moveSnake(int pressedKey) {
		for(int i = SnakeLenght; i > 0; i--){
			xSnakePos.set(i, xSnakePos.get(i-1));
			ySnakePos.set(i, ySnakePos.get(i-1));
		}
		
		if(pressedKey == 37){
			xSnakePos.set(0, xSnakePos.get(0)-SnakeDotSize);
			KeyLeft++;
		}
		
		if(pressedKey == 39){
			xSnakePos.set(0, xSnakePos.get(0)+SnakeDotSize);
			KeyRight++;
		}
		
		if(pressedKey == 38){
			ySnakePos.set(0, ySnakePos.get(0)-SnakeDotSize);
			KeyUp++;
		}
		
		if(pressedKey == 40){
			ySnakePos.set(0,ySnakePos.get(0)+SnakeDotSize);
			KeyDown++;
		}
	}

Hier die Fehlermeldung:

Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.set(Unknown Source)
at snake.Main.moveSnake(Main.java:76)


Die Variabel SnakeLenght ist Standardmässig auf 3 gesetzt.

Danke für eure Hilfe

Gruss Kakashi
 
ohne jetzt genau in den code zu schauen würde ich sagen, bei ner größe von 3 (index 0,1,2) ist der zugriff auf den index 3 wohl nicht möglich 🙂

irgendwas stimmt da wohl mit deiner rechnung nicht
 

Zurück
Oben