Ich habe ein 2d array (also z.b. int[][] ) erstellt. Und möchte jetzt durch eine Doppel-for-Schleife jedes Element dieses Arrays füllen.
(Wichtig dafür ist glaub ich noch zu sagen das ich das in Greenfoot (einem Spieleprogramm) verwenden will. Link: Greenfoot | About Greenfoot)
Java:
publicvoidact(){if(Greenfoot.isKeyDown("space")){for(int x =0; x <8; x++){for(int y =0; y <8; y++){System.out.println("Position: "+ x +" "+ y);}}}}
Das funktioniert auch wenn ich jetzt "Space" drücke werden alle Einträge in der Konsole ausgegeben. Mein Problem ist nur das es bei x=2 y=0 anfängt. Obwohl es doch eigentlich bei x=0 y=0 anfangen müsste. Wo ist der Fehler?
Mir fällt gerade auf das du ja garnicht mit den Arrays arbeitest. Also die Schleifen sind komplett richtig wird dann wohl an dem Greenfoot liegen. Ist das alles was in dem Code steht oder ist da noch mehr? Wo ist denn z.B die Initialisierung des Arrays?
ach ja stimmt ich hab hier für den thread nur ein beispiel geschrieben weil ich die Screenshots nicht mehr hatte. Hier sind sie (die Screenshots zeigen Initialisierung und Nutzung des Arrays, und die Weltklasse die das Spielfeld des Spiels verwaltet): Anhang anzeigen 7429Anhang anzeigen 7430Anhang anzeigen 7431
Das funktioniert auch wenn ich jetzt "Space" drücke werden alle Einträge in der Konsole ausgegeben. Mein Problem ist nur das es bei x=2 y=0 anfängt. Obwohl es doch eigentlich bei x=0 y=0 anfangen müsste. Wo ist der Fehler?
Ich kann deine Screenshots nicht einsehen, falsch verlinkt?
Im oberen Quellcode-Ausschnitt ist alles okay, müsste bei x=0 y=0 anfangen. Eventuell ist aber die Ausgabe zulang, dann siehst du die oberen Zeilen nicht mehr. Versuch doch mal x < 4; x < 4.
ok? doch die Screenshots müsstest du eigentlich angucken können. Also bei mir funktionierst! okay dann hier die codes der screenshots:
Die Welt:
Java:
import greenfoot.*;// (World, Actor, GreenfootImage, Greenfoot and MouseInfo)/**
* Write a description of class TestWorld here.
*
* @author (your name)
* @version (a version number or a date)
*/publicclassTestWorldextendsWorld{/**
* Constructor for objects of class TestWorld.
*
*/publicTestWorld(){// Create a new world with 600x400 cells with a cell size of 1x1 pixels.super(600,400,1);prepare();}/**
* Prepare the world for the start of the program. That is: create the initial
* objects and add them to the world.
*/privatevoidprepare(){TestActor testactor =newTestActor();addObject(testactor,0,0);}}
Die Klasse (in der das Array initialisiert und geprintet wird)
Java:
import greenfoot.*;// (World, Actor, GreenfootImage, Greenfoot and MouseInfo)/**
* Write a description of class TestActor here.
*
* @author (your name)
* @version (a version number or a date)
*/publicclassTestActorextendsActor{publicint t[][]=newint[8][8];publicvoidinitArray(){for(int x =0; x <8; x++){for(int y =0; y <8; y++){
t[x][y]=4;}}}publicvoidprintArray(){for(int x =0; x <8; x++){for(int y =0; y <8; y++){System.out.println("Position: "+x+" "+y+" - Wert: "+t[x][y]);}}}publicvoidact(){if(Greenfoot.isKeyDown("space")){initArray();printArray();}}}
Ja ich hab Java versucht mögen zu lernen hat aber nicht geklappt. Ich weiß auch nicht was alle immer so toll an Java finden? Jetzt wenn ich den Wert der Zelle [x][y] im Arry ausgebe kommt da "@eg5d6f6" oder so was ähnlich obwohl ich gerade vorher i[x][y] = 4 geschrieben hatte.