PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zufall - kleine Frage


Hercules-HH
26.06.2009, 14:53
Funktioniert das Zufallsprinzip so korrekt?


#Start
_zufall4 = random 4;
#Punkt1
~0.1
? _zufall4 < 1 : goto "Fr2p1";
? _zufall4 < 2 : goto "Fr2p2";
? _zufall4 < 3 : goto "Fr2p3";
? _zufall4 < 4 : goto "Fr2p4";
#Fr2p1
[1] exec "Skripte\Ki-West\Angriff.sqs";
~0.1
goto "Ende";
#Fr2p2
[2] exec "Skripte\Ki-West\Angriff.sqs";
~0.1
goto "Ende";
#Fr2p3
[3] exec "Skripte\Ki-West\Angriff.sqs";
~0.1
goto "Ende";
#Fr2p4
If(Wnummer == 10)then{hint "ist schon"; goto "Start"}else{hint "los"};
[4] exec "Skripte\Ki-West\Angriff.sqs";
~0.1
goto "Ende";
#Ende
exit;
Wenn die Wnummer der 10 entspricht, dann soll nochmal gewürfelt werden, also soll wieder der Zufall entscheiden, bis einer der anderen Punkte (Fr2p1 oder Fr2p2 oder Fr2p3) gewählt werden soll.

Meine Frage genau:


wird _zufall4 nochmal eine Zufallszahl oder bleibt sie unverändert, wenn sie einmal schon ne 4 war.

Eigentlich müsste ja der Zufall wieder entscheiden, weil das zum Start springt und Random wieder durchläuft. Oder?

Vienna
27.06.2009, 20:09
Ich würde das so lösen:


#Start
_zufall4 = floor(random 4)+1;
#Punkt1
~0.1
? _zufall4 == 1 : goto "Fr2p1";
? _zufall4 == 2 : goto "Fr2p2";
? _zufall4 == 3 : goto "Fr2p3";
? _zufall4 == 4 : goto "Fr2p4";
...
...


Mit floor(random 4)+1 erhältst du ganze Zahlen von 1 bis 4.

Für den Test erstelle einen Auslöser mit

Bedingung: true

Bei Akt. folgende Zeile

null=[]spawn{_Ges=0;_Z1=0;_Z2=0;_Z3=0;_Z4=0;while{true}do {_Ges=_Ges+1;_Zahl=floor(random 4)+1;switch(_Zahl)do{case 1:{_Z1=_Z1+1};case 2:{_Z2=_Z2+1};case 3:{_Z3=_Z3+1};case 4:{_Z4=_Z4+1}};hint format["Gesamt: %1\n\n1: %3\n2: %4\n3: %5\n4: %6",_Ges,_Z0,_Z1,_Z2,_Z3,_Z4];sleep 0.001}}


Da siehst du in der Hint-Ausgabe die korrekte Verteilung der Zufallszahlen von 1 bis 4.

Eine vorherige Zufallszahl hat keinen Einfluss auf die nächste Zufallszahl. Es kann die gleiche Zahl mehrmals hintereinander kommen.

Hercules-HH
27.06.2009, 21:23
danke,

Nun hab ich das so fertig gemacht, aber ich änder das mal später.

War mir da unsicher.