vor

Objektorientierte Programmierung mit Object-Pascal

weiter

4.15 Zufallsroutinen

Es gibt in Object-Pascal eine Funktion, mit der man eine Zufallszahl erzeugen kann. Das ist die Funktion RANDOM(Zahl). Sie generiert eine Zufallszahl zwischen 0 und Zahl.

Will man z. B. einen Würfel programmieren, so muss man aus der Zufallszahl eine natürliche Zahl zwischen 1 und 6 machen:

Augenzahl := trunc(random(6)) + 1;

Macht man das wirklich, so wird man zuerst zufrieden feststellen, dass man so würfeln kann. Allerdings würfelt man seltsamerweise bei jedem Spiel am Anfang die gleiche Zahl.

Mit RANDOM(Zahl) wird nämlich nur eine Pseudo-Zufallszahl gebildet; immer wieder auf die gleiche Art. Will man wirklich eine zufällige Zahl erhalten, so muss man den Start an ein jeweils anderes Anfangsereignis knüpfen. Das leistet die Systemzeit, und der Befehl dazu ist RANDOMIZE. Diesen Befehl sollte man also einmal aufrufen, bevor das erste mal RANDOM() aktiviert wird. Gut geeignet dafür ist z. B. gleich der Start des Hauptfensters:

procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Augenzahl := trunc(random(6)) + 1;
end;


vor

Inhaltsverzeichnis

weiter