INFO 3
Zufallszahlen
Neu zum Lernen:
- rand
- srand
- microtime
- double
- unset
- require
- exit
rand(min, max) gibt eine Zufallszahl zwischen min und max aus. Ohne die Argumente
min und
max werden Zufallszahlen zwischen Null und einem Wert ausgegeben, der von dem jeweiligen Betriebssystem abhängt. Wie groß dieser Wert ist, kann man mit
getrandmax() herausfinden.
Genau wie in PoVRay der Zufallsgenerator mit
seed (= säen) initialisiert werden muss, um nicht immer die selben Zufallszahlen zu erhalten, braucht man für PHP ebenfalls eine Initialisierung:
srand
<?PHP
srand((double)microtime()*1000000);
echo rand();
?>
Damit bei jedem neuen Aufruf von
rand() der Initialisierungswert auch neu ist, wird auf die interne Uhr des Webservers zurückgegriffen und zwar auf den sog.
UNIX-Timestampmicrotime, der die seit dem 1. Januar 1970 (das Betriebssystem UNIX war neu) vegangenen Sekunden und die Mikrosekunden zählt.
Da für
srand eine ganze Zahl gebraucht wird, wird "microtime" mit 1 Million multipliziert. Um sicherzugehen, dass PHP
microtime()*!000000 nicht als Zeichenkette sondern als Zahl interpretiert, wird noch
double (der Variablentyp für Fließkommazahlen) davorgeschrieben.
Bei uns jedoch soll immer dieselbe Zufallszahl benutzt werden, sonst kommen die Rater ja nie zum Ziel, daher
Leider muss vor jedem neuen Spiel die Zahl, die von srand benutzt wird, neu festgelegt werden.
Falls die Spieler überhaupt keine Ratezahl eingeben, soll das Programm abgebrochen werden:
Nach jedem Ratevorgang soll die geratene Zahl auf 0 zurückgesetzt werden. Außerdem soll das Startformular wieder neu aufgerufen werden.