mehrer Verschiedene Objekte in einer Klasse erstellen.

P

Phänox

Aktives Mitglied
Hallo,
Ich bin auf der suche nach einer Möglichkeit in einer Spielerklasse 2-4 Spieler erstellen zu lassen je nachdem was der Benutzner eingibt das ist im Prinzip kein Problem
Code:
for (int n=0;n<Benutzereingabe;n++) 
{
      new spieler;
   }
Aber jetzt habe ich ja nur 2-4 Objekte erstellt die alle die selben sind nur Jeder spieler soll andere eigenschaften haben und auch gleiche z.B jeder hat andere X und Y werte aber jeder hat das gleiche Startkapital( was sich aber im Laufe des Spieles verändern soll) nun Frage ich mich wie ich das Schreiben muss damit dies klappt und ich auch auf die Eigenschaften von jedem einzelnen Object jederzeit zugreifen kann. Jemand eine idee ?

Vielen Dank im Voraus hoffe die frage ist verständlich gestellt:)
 
Robat

Robat

Top Contributor
Eine Variante wäre sich eine ArrayList<Spieler> arraySpieler = new ArrayList<>(); zu erstellen und in deiner for-Schleife den Spieler zu der ArrayList hinzuzufügen. So kannst du dann über spielerArray.get(index); auf den Spieler zugreifen und bswp spielerArray.get(0).setHealthPoints(200); aufrufen.

Übrigens, wenn du nur new Spieler schreibst, dann bekommst du keine Instanz deines Objektes :)


Ich weiß ja nicht, was du für ein Spiel machst aber die Koordinaten könntest du anhand deines i berechnen. Sagen wir mal, dass jeder Spieler um 50 verschoben sein soll.
Dann könntest du sagen:
Java:
ArrayList<Spieler> arraySpieler = new ArrayList<>();
for(int i=0; i < len; i++)
{
    arraySpieler.add(new Spieler(50 + (i * 100), 100, 50, 100));
}

// In dem Beispiel nehme ich an, dass  der Konstruktor so aussieht:

public Spieler(int x, int y, int width, int height){ .. }

// Die Werte für len = 3 der einzelnen Spieler würden dann so aussehen:
/*   i       i*100      x        y     width     height
*   0          0        50     100    50         100
*   1        100     150     100    50         100
*   2       200      250     100    50         100
*/

Wie du siehst, hast du nun 3 Spieler die sich um 100 in ihrer X-Koordinate unterscheiden.
 
P

Phänox

Aktives Mitglied
Vielen Dank erstmal! nur leider nicht ganz was nach ich suche. Das Spiel um was es gehen soll ist Monoply ich hab mir das so vorgestellt das es ja maximal 4 Spieler geben kann und ich dann auf jedem rechteck(Straße) einen Platz für einen Spieler habe z.b ein rechteck breite 100 das dann der erste von 0-25 steht der zweite von 25-50 usw. Das Heißt jeder hat seine Startkoordinaten. Und dann lass ich sie sich bewegen je nach dem was gewürfelt wird. Und dann muss ich halt auf die Koordinaten zugreifen können um sie zu verändern. Aber z.B das Startgeld ist Gleich und muss aber auch natürlich veränderbar sein. Und dann kommen noch eigenschaften dazu wie zum Beispiel Welche Straßen sie haben. Ich hoffe das hilft ihnen mir zu helfem ^^ :).
 
Robat

Robat

Top Contributor
Ich hoffe das hilft ihnen mir zu helfem
So alt bin ich noch nicht :p ..

nur leider nicht ganz was nach ich suche.
Eig. beschreibt das von oben relative gut was du suchst.

Du hast dir ja sicherlich eine eigene Spielerklasse geschrieben die meinetwegen so aussieht:
~quick'n'dirty

Java:
public class Spieler {
     private int money;
     private int xPos;
     private int yPos;
     private int width;
     private int height;
     private ArrayList<Streets> streets = new ArrayList<>();
     //...

     public Spieler(int xPos, int yPos, int width, int height, int money)
     {
           this.xPos = xPos;
           this.yPos = yPos;
           this.width = width;
           //....
     }
    
    // Getter und Setter für die Variablen
    public int getXPos() { return this.xPos; }
    public void setXPos(int xPos) { this.xPos = xPos; }
   
    public int getYPos() { return this.yPos; }
    public void setYPos(int yPos) { this.yPos = yPos; }

    /**
     * Methode, die eine erworbene Straße {@see Street } 
     * dem Spieler hinzufügt.
     * @param street  die Straße, die hinzugefügt werden soll
     */
    public void addStreet(Street street) { streets.add(street); }
    // ...
}

Soo..

Wenn du jetzt in deiner for-Schleife die 4 Spieler erstellst, dann kannst du das wie oben machen. Du musst eben nur die Koordinaten deinen Wünschen anpassen.
Wenn du dir vorher eine ArrayList mit den 4 Spieler erstellst, dann hat das Array nach der for-Schleife 4 Instanzen deiner Spieler-Klasse. Auf jede Instanz dieser Klasse
kannst du über den Array-Index zugreifen und die bswp. Koordinate für die eine Instanz ändern. Über die Getter und Setter / weitern Methode kannst du dann Spezifika der Spieler ändern.

Java:
ArrayList<Spieler> arraySpieler = new ArrayList<>();

// initialisiere die Spieler
for(int i = 0; i < 4; i++)
{
    arraySpieler.add(new Spieler(0 + (i*25), 0, 25, 25, 16000);
    // So erstellst du dir 4 Spieler, die von 0-25, 25-50, 50-75 und 75-100 gehen, bei einer y-Koord. von 0 anfangen, 25 Breit und 25 hoch sind. Das Startgeld ist 16000
}

//Wenn du jetzt weißt, dass Spieler 1 dran ist und eine 1 gewürfelt hat, dann willst du ihn auf nächstes Feld setzten. 
//Wenn die Y Koordinate des nächsten Feldes bei 100 liegt dann kannst du den Spieler so bewegen:
arraySpieler.get(0).setYPos(100);

Gruß
Robert
 
P

Phänox

Aktives Mitglied
Vielen Dank !!!! ich versuch das alles gleich mal alles :)
hoffe bei rückfragen kann ich mich an dich wenden :)
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Übergabe mehrer Files an selbstprogrammieren Parser Allgemeine Java-Themen 4
D Email an mehrer Absender versenden Allgemeine Java-Themen 3
G mehrer grafiken mit delay daziwschen anzeigen Allgemeine Java-Themen 5
M Anwendung auf mehrer JAR - Dateien verteilen!! Allgemeine Java-Themen 4
M verschiedene Dokumente auslesen Allgemeine Java-Themen 1
M Logging mit log4j2 in verschiedene Dateien? Allgemeine Java-Themen 22
J Verschiedene Runtime Versionen gleichzeitig? Allgemeine Java-Themen 12
H Klassen LibGDX - Verschiedene Klassen als Value in einer Map Allgemeine Java-Themen 8
K Verschiedene Sprachen Allgemeine Java-Themen 1
C -Verschiedene Versionen eines Programms verwalten Allgemeine Java-Themen 7
M Verschiedene Pilzartenerkennung Allgemeine Java-Themen 0
I Verschiedene Arrays auslesen Allgemeine Java-Themen 6
nrg Verschiedene JREs im Browser konfigurieren Allgemeine Java-Themen 6
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
G DesignPattern Verschiedene Services Allgemeine Java-Themen 4
B Verschiedene Objekte in Abhängigkeit eines Typs instanziieren. Allgemeine Java-Themen 17
M massenhaft verschiedene Date-Pattern Allgemeine Java-Themen 3
R Eclipse Verschiedene Ergebnisse bei Berechnung eines double-Werts Allgemeine Java-Themen 5
R Implementierung eines Interface durch 2 verschiedene Klassen Allgemeine Java-Themen 6
faetzminator verschiedene Beans, verschiedene Felder "koppeln" Allgemeine Java-Themen 3
J Verschiedene Klassen als "Object" in ArrayList und dann in for-Schleife erzeugen!? Allgemeine Java-Themen 2
S Welche Datenstruktur für verschiedene Sprachen sinnvoll? Allgemeine Java-Themen 2
H Zwei verschiedene Dateien mittels einem Binärstream übertragen? Allgemeine Java-Themen 13
M verschiedene Methonden innerhalb des gleichen Threads Allgemeine Java-Themen 7
N verschiedene Klasse laden (Designfrage) Allgemeine Java-Themen 2
S Package in verschiedene Projekten einbinden? Allgemeine Java-Themen 3
D Verschiedene Datein aus einer Zip Datei ins Programm laden Allgemeine Java-Themen 4
D Verschiedene Persistenz Strategien Allgemeine Java-Themen 7
S Konstruktoren, verschiedene Klassen, Methoden. Allgemeine Java-Themen 3
M Verschiedene Modi bei AbstractTableModel Allgemeine Java-Themen 10
J Verschiedene Klassen, verschiedene Ströme? Allgemeine Java-Themen 6
V 1 Methode für viele verschiedene Klassen? Allgemeine Java-Themen 9
L Verschiedene Versionen eines Interfaces Allgemeine Java-Themen 12
J Verschiedene Starteinstellungen Allgemeine Java-Themen 7
J Programm für verschiedene Betriebssystem vertreiben? Allgemeine Java-Themen 10
M 2 verschiedene LookAndFeels in einem Fenster möglich? Allgemeine Java-Themen 6
D Gehts praktischer? Thema:Verschiedene Instanzen einer Klasse Allgemeine Java-Themen 3
C Verschiedene JDKs Allgemeine Java-Themen 6
M Regular Expression - verschiedene Ausdrücke testen (grep | ) Allgemeine Java-Themen 5
C verschiedene Klassenarten Allgemeine Java-Themen 3
G Verschiedene Auflösungen Allgemeine Java-Themen 6
H verschiedene Java Versionen Allgemeine Java-Themen 3
A Textfeld soll verschiedene Datumseingaben akzeptieren Allgemeine Java-Themen 5
L Objekte in Set nicht gefunden Allgemeine Java-Themen 13
Avalon Data Transfer Objekte aus Datenbank erstellen Allgemeine Java-Themen 8
G Objekte mit Strings Aufrufen Allgemeine Java-Themen 8
H Objekte speichern und laden Allgemeine Java-Themen 10
H Objekte speichern und laden Allgemeine Java-Themen 1
M Referenz auf Objekte und deren Inhalte Allgemeine Java-Themen 12
W Objekte reproduzieren Allgemeine Java-Themen 2
W Objekte per Reflexion instanziieren Allgemeine Java-Themen 7
W Unittest - Objekte simulieren Allgemeine Java-Themen 7
T OOP Objekte mit Erweiterung Initialisieren Allgemeine Java-Themen 6
O Erste Schritte Objekte als Datenelemente Allgemeine Java-Themen 14
J Equals Mock Objekte Allgemeine Java-Themen 5
J Mockito - Objekte miteinander vergleichen (equals) Allgemeine Java-Themen 6
N Bei Mouse Events nicht mehrere Objekte erstellen Allgemeine Java-Themen 13
J Zugriff auf erstellte Objekte einer Klasse von einer Klasse ausserhalb Allgemeine Java-Themen 3
J Java Objekte = null, Garbagecollector Allgemeine Java-Themen 12
F Listen - Mehrere Objekte Allgemeine Java-Themen 1
J Verständnis Frage zur Instanz, Objekte, Instanzierung, Referenz Allgemeine Java-Themen 14
F Objekte erzeugen Allgemeine Java-Themen 1
E Threads ThreadPoolExecutor remove mit callable Objekte Allgemeine Java-Themen 3
E OOP Objekte und Methoden Allgemeine Java-Themen 1
@SupressWarnings() Umgebungsvariable Objekte "gekoppelt" Allgemeine Java-Themen 6
S Algorithmus um Objekte auf einer Flaeche mit gleichem Abstand anzuordnen..? Allgemeine Java-Themen 20
C Objekte in Array List speichern? Allgemeine Java-Themen 1
NicoDeluxe Objekte speichern Allgemeine Java-Themen 8
B Objekte anhand von Properties file Allgemeine Java-Themen 41
U Tiefe Objekte schreiben Allgemeine Java-Themen 1
R Abstrakte Basisklasse und instanzierte Objekte der abgeleiteten Klasse als Basisklasse übergeben Allgemeine Java-Themen 2
E 3D Objekte in 2D Bild finden Allgemeine Java-Themen 5
J Daten aus GUI auslesen und in Objekte umwandeln Allgemeine Java-Themen 6
F FileOutput/Input Objekte Allgemeine Java-Themen 6
NicoDeluxe Objekte serialisieren Allgemeine Java-Themen 3
J unterschiedliche Objekte, selbe getter und setter Allgemeine Java-Themen 15
L Lib gesucht: Java-Objekte mit JSON Allgemeine Java-Themen 2
U Set erklären dass objekte gleich sind Allgemeine Java-Themen 12
E Best Practice Verdammt große Objekte Allgemeine Java-Themen 10
B Mehrere Objekte verschlüsselt serialisieren Allgemeine Java-Themen 6
G Liste anzahl der gleichen Objekte Allgemeine Java-Themen 6
N Objekte an eine andere Applikation übergeben Allgemeine Java-Themen 3
N 2 Objekte zu einer Gruppe zusammenfügen Allgemeine Java-Themen 7
M Instanzierte Objekte in XML Dokument speichern Allgemeine Java-Themen 3
K Input/Output Im Programm instanzierte Objekte Speichern und laden Allgemeine Java-Themen 3
S OOP Objekte als Return-Werte: Einen Klon zurückgeben oder Instanz auf das Feld? Allgemeine Java-Themen 10
H Objekte Serialisiert speichern Allgemeine Java-Themen 10
L MouseListener für viele Objekte erstellen Allgemeine Java-Themen 16
5 Objekte Sortieren lassen Allgemeine Java-Themen 7
N Objekte aus Array Inhalt erzeugen Allgemeine Java-Themen 8
L Input/Output Textdatei in Objekte überführen? Allgemeine Java-Themen 4
R Input/Output Objekte speichern ohne überschreiben Allgemeine Java-Themen 7
A Collections HashMap.containsKey findet keine immutablen Objekte Allgemeine Java-Themen 3
H Threads Thread stirbt aber Objekte in ihm leben weiter?! Allgemeine Java-Themen 9
M Java Objekte in XML mit JAXB Allgemeine Java-Themen 9
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
H COM-Objekte/ AktiveX Objekte Allgemeine Java-Themen 4
C Script für Website mit Objekte Ausblenden Allgemeine Java-Themen 3
M Txt einlesen & Objekte erzeugen Allgemeine Java-Themen 2
X Objekte aus TableModel serialisieren und deserialisieren Allgemeine Java-Themen 4

Ähnliche Java Themen


Oben