Zufallszahlen gehören zum Entwickeln von Spielen wie das Salz zur Suppe. Erst der Gebrauch von Zufallszahlen macht den Verlauf von Spielen abwechslungsreich. Leider verfügt aber Flash für die Verwendung von Zufallszahlen über wenig eigene Bordmittel, was bedeutet, dass "Handarbeit" unumgänglich ist. Andere Programmiersprachen sind in dieser Hinsicht massiv besser ausgestattet.
Die Methoden Math.random() und Math.floor()
Die Methode Math.random() liefert einen Zufallswert zwischen 0 und 0,99999... zurück. Diese Methode ist das Einzige, was Flash uns zur Verfügung stellt im Bereich der Zufallszahlen. Den Rest muss man selber programmieren, weil man in den wenigsten Fällen ein solches Resultat gebrauchen kann. Schauen wir uns ein paar Beispiele an, wie man das Resultat für den Einsatz in Spielen gebrauchen kann.
Zunächst sei hier aber noch die Methode Math.floor()erklärt, was die Voraussetzung für das Verstehen des weiteren Inhalts ist. Math.floor() streicht einer Dezimalzahl die Stellen rechts des Punktes weg, das Resultat ist immer eine ganze Zahl (die nächste, kleinere Ganzzahl). Beispiele:
Math.floor(3.999);
//Das Resultat ist 3
Math.floor(4.2);
//Das Resultat ist 4
Math.floor(10);
//Das Resultat ist 10, ganze Zahlen bleiben unangetastet
Math.floor(-2.3)
//8ung, das Resultat ist -3, also die nächste, kleinere Ganzzahl
Zufallsgenerator für Zahlen von 1 bis 6
//Eine Zufallszahl zwischen 0 und 0.99999... wird produziert
var zufall=Math.random();
//Multiplikation mit 6, die Zahl liegt jetzt zwischen 0 und 5.9999
zufall=zufall*6;
//Die Dezimalstellen werden abgeschnitten, die Zahl ist im Bereich 0 - 5
zufall=Math.floor(zufall);
//Mit der Addition von 1 bringen wir das Resultat in die Endform
zufall=zufall+1;
Dieses Zeilen lassen sich natürlich viel kürzer formulieren:
var zufall=Math.floor(Math.random()*6)+1;
Fehler in Flash Player 5.00.30.00
Im Flash Player 5.00.30.00 trat ein Fehler auf: Die Rückgabewerte von Math.random() waren in seltenen Fällen nicht im Bereich von 0 bis 0,9999..., sondern im Bereich von 0 bis 1. Auch wenn diese Ungenauigkeit noch so klein sein mag, kann sie Ihr Script trotzdem durcheinander bringen. Im obigen Beispiel wären die Zahlen, die zurückkommen, dann halt nicht zwischen 1 und 6, sondern eben selten im Bereich bis 7. Möchten Sie das verhindern, müssen Sie den Fehler irgendwie abfangen.