Matrix für Schachbrett

JavaFett

Mitglied
Hallo,

wie krieg ich die Array-Ausgabe hin, dass mir System.out.print die integer werte liefert??

Was ist das für ne Formation?


Als Hintergrund. ich möchte eine Matrix für ein Schachbrett haben, wo ich jede zeile über die x und y koordinate ( hier colum | line ) ansprechen.

Java:
 public static void main(String[] args) {
     
        int[][] a= new int[8][8];
         System.out.print(a.length);
       
        int i =0;
        for (int line = 0; line < a.length; line++) {
            for (int colum = 0; colum < a[line].length; colum++) {
                i=i+1;
                 System.out.print("x: " + a[line] + "\t" +"y: " + a[colum] +"\n");
            }
        }
    }
}

Ausgabe schaut so aus:
64 mal.

x: [I@2a139a55 y: [I@15db9742
x: [I@2a139a55 y: [I@6d06d69c
x: [I@2a139a55 y: [I@7852e922
 
Zuletzt bearbeitet von einem Moderator:
Das was du als Ausgabe erhältst sind die Speicheradressen hinter jedem einzelnen Wert. Du erhältst diese, weil du ein Array deklariert und initialisiert hast, aber du hast keine Werte hinter jedem Index hinterlegt.

Kurzum: Du musst etwas einbauen wie z. B. a[0][0] = 1. Damit wird die Position 0, 0 deines zweidimensionalen Arrays beschrieben. Das musst du nun mit allen anderen Feldern auch machen. Also vom Index 0, 0 bis zum Index 7, 7. In dem Fall nicht 8, 8 weil die 0 die erste Zahl ist und nicht die 1.
 
Gut, hab ich verstanden. Habe ich hiermit gemacht.
Java:
  char[][] a= new char[8][8];
        
       int x=0;
         
        for (char line = 0; line < a.length; line++) {
           
            for (char colum = 0; colum < a[line].length; colum++) {
                x=x+1;
                a[line][colum] = (char) x;
                System.out.print(x+"    x: " + a[line] + "\t" +"y: " + a[colum] +" \n");
Ausgabe Bsp.
56 x: [C@5c647e05 y: [C@33909752

Ich wollte allerdings, dass das array mit index [0][1] die koordinaten 0|1
[1][1] die koordinten 1|1 etc. repräsentiert.

Einem array index [7][7] einen char wert 64 zu geben, bringt mich da nicht wirklich weiter.

trotzdem Danke!
 
Wieso nutzt du nun Char statt wie an den vorigen Stellen int? Ganzzahlige Zahlen sind immer Integer. Gilt also für dein colum, a-Array und deine line. Kann es sein, dass du mit colum eher column meinst?
 
Ich meine mit colum die Spalte. Acht an der Zahl.
der for-durchlauf erzeugt ja [line][colum]
[0][0],[0][1],[0][2],[0][3],[0][4],[0][5],[0][6],[0][7]
bis
[7][0],[7][1],[7][2],[7][3],[7][4],[7][5],[7][6],[7][7]

Also reicht doch char eigentlich aus.

Am liebsten hätte ich die Werte so wie sie da stehen für alle 8 zeilen.
Ich muss ein array index [zeile][lspalte] ja auch über [zeile][spalte] später auf dem Schachbrett ansprechen können.
 
Du hängst a[line] an einen String an. a[line] zeigt aber auf ein Array. Darum die Ausgabe:[C@xxxx. Auch ist hier int die bessere Wahl, da ein char, wenn es an einen String gehängt wird, anscheinend auch als char interpretiert wird(nicht als zahl). Also sowas:
Code:
char c = 64;
System.out.println("hi"+c+"hi");
ergibt:
hi@hi
auf der Konsole.

Ich denke mal, was du wolltest war sowas:
Code:
int[][] a = new int[8][8];
int x = 0;
for(int line = 0; line < a.length; line++)
{
	for(int colum = 0; colum < a[line].length; colum++)
	{
		x = x+1;
		a[line][colum] = x;
		System.out.print(a[line][colum] + " y:"+line +"\t"+ "x: " +colum + "\n");
	}
}
 

Zurück
Oben