Auf Thema antworten

Nicht so ganz. Ich hab mir jetzt nicht alles angeschaut, aber soweit ich sehe, ist das die Stelle, an der ein Objekt ins Solarsystem gesetzt wird: [icode]this.solarsystem [newx] [newy] = typ;[/icode].


Das Problem ist, dass du ein Array mit einer Größe von 51x51 erstellt hast und die Werte für die Koordinaten (da sie ja gleichzeitig dem Arrayindex entsprechen) damit auch zwischen 0 und 50 liegen müssen.


Das Ziel wäre es von diesem Index unabhängig zu werden und die Position innerhalb des Objekts zu speichern, welches wiederum im Array gespeichert ist. Im einfachsten Fall ist das eine Klasse mit drei öffentlichen Instanzvariablen:

[CODE=java]

// kein richtig "gutes" Objekt, aber es funktioniert...

public class SolarObject {

    public int x;

    public int y;

    public int typ;

 

    public SolarObject(int x, int x, int typ) {

        this.x = x;

        this.y = y;

        thix.typ = typ;

    }

}

[/CODE]


Und in der Klasse Solarsystem dann [icode]SolarObject[] solarsystem = new SolarObject[size][/icode]. In diesem Array kannst du dann "size" Objekte an beliebigen Koordinaten platzieren (Wertebereich von int).


Und noch ein paar Anmerkungen:


Es ist eine sehr gute Idee Vorgabewerte als Konstanten zu definieren. Es ist gängige Praxis, das Konstanten in Java komplett groß geschrieben werden und neben "final" auch noch "static" deklariert werden.

[CODE=java]

final static short SIZE = 51; //Feste Größe für ein Solarsystem

final static short TYP_AMOUNT = 4; //Anzahl Sternen Sorten

final static short AMOUNT_OBJECTS = 9;

[/CODE]


Normale Variablen sollten im "lowerCamelCase" deklariert werden, also anstatt [icode]int placerandom[/icode] besser [icode]int placeRandom[/icode]. Das lässt sich leichter lesen.


Darf ich fragen, nach welcher Vorlage (Buch, Tutorial, ??) du Java lernst? Nur aus Neugierde.



Oben