- Mitglied seit
- 01.07.2000
- Beiträge
- 1.062
- Reaktionen
- 0
Code:
int getCardId()
{
int l = WerteArray.length-1;
Random rand = new Random();
return (rand.nextInt(l));
}
int giveCard()
{
int cardID = getCardId();
if(nochda[cardID] == false)
giveCard();
else
{
nochda[cardID] = false;
return WerteArray[cardID];
}
return 99;
}
Also folgendes.
Die beiden Funktionen arbeiten zusammen. Die Funktion getCardId() bestimmt eine Zufallszahl im Bereich 0-52 und gibt diese zurück.
Die Funktion giveCard() prüft erstmal in dem Array nochda(boolsches Array), ob diese Karte schon gezogen wurde. Falls ja, so ruft er die Funktion nochmal auf (Rekursion), womit also eine neue Karte gezogen wird. Falls nein, so setzt er die Karte an der Stelle, die die Funktion getCardId() zurückgegeben hat auf false und gibt den Wert der Karte an der Stelle zurück.
Der Abschnitt return 99; sollte eigentlich nie erreicht werden. Trotzdem kommt es (sehr selten) vor, dass ich als Rückgabewert von der Funktion eine 99 kriege.
Weiß einer woran das liegt ?
Ist es irgendwas dummes, das ich übersehen habe ?

Plz hlp
