Hallo,
als Einsteiger versuche ich in einem 2D-Array ein Zeichen wandern zu lassen. Durch die Eingabe für links, rechts, rauf, runter wandert das Zeichen.
Es funktioniert in alle Richtungen, nur nicht nach "unten". Hier wirft mir Eclipse die OutOfBoundsException.
Der Code:
als Einsteiger versuche ich in einem 2D-Array ein Zeichen wandern zu lassen. Durch die Eingabe für links, rechts, rauf, runter wandert das Zeichen.
Es funktioniert in alle Richtungen, nur nicht nach "unten". Hier wirft mir Eclipse die OutOfBoundsException.
Der Code:
Java:
public static void main(String[] args)
{
char arr[][] = {{'x','x','x'},
{'x','x','x'},
{'x','x','x'}};
char cross = 'o';
arr [1][1] = cross;
for (char[] elemente : arr)
System.out.println(elemente);
int auswahl;
System.out.println("auswahl 1 = rauf; auswahl 2= runter; 3= links; 4= rechts");
Scanner sc = new Scanner (System.in);
auswahl = sc.nextInt();
for (int i = 0; i < arr.length; i = i + 1 )
{
for (int j = 0; j < arr[i].length; j++)
{
int temp;
if (arr[i][j] == 'o')
{
arr[i][j] = 'x';
if (auswahl == 1)
{
temp = i - 1;
arr[temp][j] = 'o';
break;
}
if (auswahl == 2) //Char 'o' soll nach unten wandern.
{
temp = i + 1;
System.out.println(temp); // Temp wird auf 2 gesetzt und ausgegeben.
arr[temp][j] = 'o'; // Hier ensteht der Fehler. Manuell cross= 'o' auf [2][1] intialisieren funktioniert. Das müsste der Wert sein, der in dieser If Bedingung ermittelt wird für das Array.
break;
}
if (auswahl == 3)
{
temp = i - 1;
arr[i][temp] = 'o';
break;
}
if (auswahl == 4)
{
temp = i + 1;
System.out.println(temp);
arr[i][temp] = 'o';
break;
}
}
}//inner for
}//end for