Zufallszahlen



Neu zum Lernen:

  1. rand
  2. srand
  3. microtime
  4. double
  5. unset
  6. require
  7. exit



Mit 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-Timestamp "microtime", 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()*1000000" 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.



Zurück zum Kurs