Hallo yga,
abgesehen von den Tipps von Helmi, hast du glaube ich das Ziehen der Kugeln falsch umgesetzt. Kleine Denkaufgabe:
Du hast 5 Weiße und 5 Schwarze Kugeln im Topf. Und bei der Zeile
fall:=(Random(2)+1); {Welcher Fall tritt ein?}
kommt die ersten dreimal eine 2 raus. Kann das funktionieren? Kann man wirklich 6 Weise Kugel ziehen ob wohl nur 5 im Topf sind.
Ich würde das Ziehen einer Kugel so machen:
Delphi-Quellcode:
if Random(s+w)> s then
// Eine Weiße gezogen
else
// Eine Schwarz gezogen
Und dann
randomize;
ruft man nur einmal auf. Zum testen und debuggen ersetzt man diesen durch eine Zuweisung einer Konstanten Zahl zu
RandSeed
. Also für das Debuggen so:
Delphi-Quellcode:
procedure TForm1.KugelnZiehen(Sender: TObject);
...
begin
RandSeed:= 42;
// Jetzt Algo mit Zufallszahlengenerator
end;
Dadurch bekommt man beim Durchdebuggen immer wieder reproduzierbare Zufallszahlen.
einbeliebigername.