Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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:
public void act()
{
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)
*/
public class TestWorld extends World
{
/**
* Constructor for objects of class TestWorld.
*
*/
public TestWorld()
{
// 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.
*/
private void prepare()
{
TestActor testactor = new TestActor();
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)
*/
public class TestActor extends Actor
{
public int t[][] = new int[8][8];
public void initArray()
{
for (int x = 0; x < 8; x++)
{
for (int y = 0; y < 8; y++)
{
t[x][y] = 4;
}
}
}
public void printArray()
{
for (int x = 0; x < 8; x++)
{
for (int y = 0; y < 8; y++)
{
System.out.println("Position: "+x+" "+y+" - Wert: "+t[x][y]);
}
}
}
public void act()
{
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.