Hi!
ich brauche dringend Hilfe.. ich weiß nicht mehr weiter.
Also , ich habe hier eine Schleife, die einem Spieler eine bestimmte Anzahl an Spielkarten gibt. Jedes Mal soll die Spielkarte zufällig erstellt werden:
if ( spieler.length * kartenProSpieler > 52) {throw new VerteilungUnmoeglichException();}
else {
Random rand = new Random();
int randomIntFarbe = rand.nextInt(3);
int randomIntWert = rand.nextInt(12);
/* Schleifen-Index "i" kuemmert sich um die Spieler
* Schleifen-Index "j" kuemmert sich um die Anzahl der Karten pro Spieler */
for (int i= 0; i < spieler.length; i++) {
for (int j = 0; j < kartenProSpieler; j++) {
spieler.bekommeKarte(new Spielkarte(randomIntWert, randomIntFarbe));
}
}
}
}
Die Methoden funktionieren ALLE ; alles getestet worden.
Das Problem ist: die Schleife erstellt keine neuen Objekte, sondern merkt sich die Referenz auf diese eine Spielkarte beim ersten Erstellen und gibt dem Spieler und allen anderen Spielern dann immer die gleiche Karte und erstellt eben nicht random-mäßig jedes Mal ein neues Objekt.
Man kann in Java ja keine Objekte löschen, das macht der GC. Der tut es aber nicht, da er immer wieder erkennt, dass das Objekt noch referenziert wird(ist ja in einer Schleife).
Also funktioniert null-Referenz setzen und System.gc() auch nicht.
Ich weiß nicht weiter! Wenn das so nicht klappt, muss ich alle klassen und Methoden komplett neu machen! Das muss doch irgendwie gehen, dass man hier dem Spieler jedes Mal eine neu generierte Karte geben kann?!
Ich wäre sehr dankbar, wenn irgendjemand eine Idee hätte!
ich brauche dringend Hilfe.. ich weiß nicht mehr weiter.
Also , ich habe hier eine Schleife, die einem Spieler eine bestimmte Anzahl an Spielkarten gibt. Jedes Mal soll die Spielkarte zufällig erstellt werden:
if ( spieler.length * kartenProSpieler > 52) {throw new VerteilungUnmoeglichException();}
else {
Random rand = new Random();
int randomIntFarbe = rand.nextInt(3);
int randomIntWert = rand.nextInt(12);
/* Schleifen-Index "i" kuemmert sich um die Spieler
* Schleifen-Index "j" kuemmert sich um die Anzahl der Karten pro Spieler */
for (int i= 0; i < spieler.length; i++) {
for (int j = 0; j < kartenProSpieler; j++) {
spieler.bekommeKarte(new Spielkarte(randomIntWert, randomIntFarbe));
}
}
}
}
Die Methoden funktionieren ALLE ; alles getestet worden.
Das Problem ist: die Schleife erstellt keine neuen Objekte, sondern merkt sich die Referenz auf diese eine Spielkarte beim ersten Erstellen und gibt dem Spieler und allen anderen Spielern dann immer die gleiche Karte und erstellt eben nicht random-mäßig jedes Mal ein neues Objekt.
Man kann in Java ja keine Objekte löschen, das macht der GC. Der tut es aber nicht, da er immer wieder erkennt, dass das Objekt noch referenziert wird(ist ja in einer Schleife).
Also funktioniert null-Referenz setzen und System.gc() auch nicht.
Ich weiß nicht weiter! Wenn das so nicht klappt, muss ich alle klassen und Methoden komplett neu machen! Das muss doch irgendwie gehen, dass man hier dem Spieler jedes Mal eine neu generierte Karte geben kann?!
Ich wäre sehr dankbar, wenn irgendjemand eine Idee hätte!