Javaspiel Kartendaten x y gebäude

Status
Nicht offen für weitere Antworten.

Memphis

Aktives Mitglied
Ich hoffe ich konnte das Thema ein bisschen treffen mit meinem Topic.
Ich habe folgendes Problem ich habe jetzt schon ein Spielfeld es sollen Gebäude gebaut werden können. Das geht auch alles wunderbar aber wie könnte ich jetzt die Gebäudepostionen abspeichern damit man keine 2 Gebäude übereinander baut dazu müsste ich x y und den Gebäudetyp abspeichern wie könnte ich das am besten tun und gleich auch wieder auslesen?

Vielen Dank für eure Hilfe.
 

bambi

Bekanntes Mitglied
Kommt drauf an, was Du mit den Daten machen willst und wie Du sie auslesen willst.

Also wenn Du mehrere Objekte - vom Typ Gebaeude oder so - hast, dann wuerde ich einfach mal 'ne Liste oder ein Array empfehlen. Wenn Du die Daten per Key auslesen willst - ist eine HashMap ganz gut...
 

Campino

Top Contributor
Ich würde in den Gebaeude-Typen Variablen für x,y, breite und höhe anlegen, falls das deine Frage war. Die einzelnen gebaude würde ix´ch dann in einem Vektor speichern.
 

Memphis

Aktives Mitglied
das x y sollte eigentlich die Kartenposi sein den rest kann ich ja errechnen wenn ich vorher angebe wie groß jedes Gebäude ist.
müste der Array dann so aussehen gebäude[] [] [] = "x","y","typ"; ?
 

bambi

Bekanntes Mitglied
Wenn deine Attribute alle vom gleichen Typ sind, dann wurede das so gehen, denk' ich.

Ich wuerde Dir aber empfehlen ein Gebaede-Objekt zu verwenden. Schreib' Dir einfach eine Klasse mit den 3 Attributen

Sowas wie 'ne JavaBean oder so eignet sich da ganz nett.

Code:
public class Gebauede implements Serializable
{

    private int x = 0;
    private int y = 0;
    private int type = 0;

    public Gebauede(int x, int y, int type)
    {
        this.x = x;
        this.y = y;
        this.type = type;
    }

    public int getType()  {
        return type;
    }
    public void setType(int type)  {
        this.type = type;
    }
    public int getX()  {
        return x;
    }
    public void setX(int x)  {
        this.x = x;
    }
    public int getY()  {
        return y;
    }

    public void setY(int y)  {
        this.y = y;
    }
}

Diese Objekte kannst Du dann in einem Array/Vektor ablegen.

Beantwortet das Deine Frage? Oder wolltest Du was anderes machen?
 

Memphis

Aktives Mitglied
Ja mein Prob ist ich versteh net ganz wie ich das in dem Array ablege bzw. wiederhole.

EDIT: 1 Wert bekomme ich ja hin aber 2 :( oda 3.
 

bambi

Bekanntes Mitglied
Also mit dem Objekt:

Code:
        int[] myArray = new int[5];
        myArray[0] = new Gebauede(1,2,3);
...

und nur mit einem 2dim Array:

Code:
        int x = 1;
        int y = 2;
        int type = 3;
        
        int[][] myArray2 = new int[5][3];
        myArray2 [0][0] = x;
        myArray2 [0][1] = y;
        myArray2 [0][2] = type;
...

Also die Array-Greoesse musst Du noch anpassen - hier immer 5 Elemente, was Dir sicher nicht reichen wird... :wink:
 

mic_checker

Top Contributor
bambi hat gesagt.:
Also mit dem Objekt:

Code:
        int[] myArray = new int[5];
        myArray[0] = new Gebauede(1,2,3);
...
Du meintest sicherlich:

Code:
Gebaeude[] myArray = new Gebaeude[5];
myArray[0] = new Gebaeude(1,2,3);

Oder?
 

Memphis

Aktives Mitglied
ah mit 5 lege ich fest das es 5 sind also in den ersten werte also in der ersten deminion 0-4 richtig? und so kann ich die einzelnen dann auch ansprechen gut dankeschön :). Geht das auch irgentwie das wenn man einen Array füllt die 5 sich auf 6 erweitert das es praktisch unendlich wird?
 

bambi

Bekanntes Mitglied
ja, das ist das problem mit den Arrays (in Java). da muss man vorher festlegen
wie gross es maximal ist. wenn du nicht genau weisst, wieviele elemente du
maximal hast, dann wuerde ich auch eine ArrayList nehmen.

Bei ArrayLists kannst du aber kein 2dim-Array erstellen.
Dann brauchst Du auf jeden fall objekte, die du dann in die Liste legst.
Falls Dir Arrays sympatischer sind, als ein neues Objekt zu schreiben,
dann kannst Du ja auch dort ein array mit deinen Daten ablegen
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben