Also hier habe ich dann mal den quelltext des php-stopp!es. #!C:\xampp\php\php.exe -q <?php echo "Hello world of PHP CLI!\n"; #diese Datei enthält Endresultate (ah, das Verzeichnis c:\roulette sollte wohl existieren) $handle=fopen("C:\/roulette\/output.txt", 'a'); #srand(); #mit srand(zahl) könnte man einen festen startpunkt der Zufallsfolge setzen , die Zufallsfolge wird dann immer gleich $runs=100000; #Anzahl der Spiele #Die folgenden Arrays enthalten eine reihe von Progressionen; $desc ist die Beschreibung. einfach eine auskommentieren $desc="x 2:"; $setArr=array(0,1,2,4,8,16,32,64,128,256,512,1024); $desc= "x 2 / x2 + 1"; $setArr=array(0,1,2,5,10,21,42,85,170,341,682,1364); #$desc="x 2 +1 / x2"; #$setArr=array(0,1,3,6,13,26,53,106,213,426,853,1706); #$desc= "x 2 + 1"; #$setArr=array(0,1,3,7,15,31,63,127,255,511,1023,2047); #$desc= " x 3"; #$setArr=array(0,1,3,9,27,81,243,729,2187,6561,19683,59049); fwrite ($handle, "\n$runs Runs : Biet-array: $desc :". $setArr[1]." ". $setArr[2]." ". $setArr[3]." ". $setArr[4]." ". $setArr[5]." ". $setArr[6]." ". $setArr[7]." ". $setArr[8]." ". $setArr[9]." ". $setArr[10]."\n"); echo "spiel:\n"; #Äussere Schleife: so oft wird eine Spielreihe gespielt. Hätte ja gleich die innere um so viel mal mehr laufen lassen können, aber so sieht man bes. hübsch, das das ergebnis stabil ist. for ($j = 1; $j<10;$j++) { $val=1; #der Kontostand $valmin=1; #der niedrigste Kontostand der Spielreihe $valmax=1; #der höchste Kontostand der Spielreihe $level=1; #level ist der Level der Progression $leveloverrun=0; # immer, wenn ich echt verliere (also bis zum höchstzulässigen Level gekommen bin), wird das hier gezählt. $maxlevel=11; # höchster spielbarer Level (oben hab ich immer 11 Werte in den Arrays, mehr dürfte kein Casino drinhaben) $max=2000; #wird im Moment nicht verwendet, wollte hier den höchst bietbaren Betrag angeben. Stattdessen genügt der höchste level. for($i = 1; $i<=$runs;$i++) #for($i = 1; $i<=1000000;$i++) { $rand=rand(0,36); #zufallszahl zw. 0 und 36 $curlevel=$level; #zwischenspeichern gegenwärtigen levels f. ausgabe if ($rand<18) #die Hälfte der Zahlen <> 0 gewinnt { #win $WIN=" *WIN* "; $val+= $setArr[$level]; # gewinn kassieren $level=1; # wieder auf 1 zurück if ($val>$valmax)$valmax=$val; #maximalwert protokollieren }else { #loose $WIN=" Loose "; $val=$val-$setArr[$level]; #verlust bezahlen $level++; #level erhöhen if ($level>$maxlevel) #falls maxlevel überschritten, reihe beenden u. wieder bei 1 anfangen { echo "\nAbbruch: level überschritten \n"; $level=1; $leveloverrun++; #break; } if ($val<valmin)$valmin=$val; #minimalwert protokollieren } echo "$rand $curlevel $WIN $val $setArr[$curlevel] \n"; #Ausgabe am Bildschrim f. dieses Spiel } #ausgabe Endstand auf Bildschirm u. in Protokolldatei echo "max: $valmax / min: $valmin\n"; fwrite ($handle, "endstand: $val max: $valmax min: $valmin leveloverruns: $leveloverrun maxlevel: $maxlevel\n"); } fclose($handle); ?>