ich habe gerade meine erste Php Seite geschrieben,
als Projekt habe ich mir Risiko ausgesucht. Also nicht das komplette Spiel sondern ich wollte mir die Chancen berechnen lassen die der Angreifer und der Verteidiger jeweils hat.
Wer das System nicht kennt kann den Absatz weiterlesen, der Rest kann direkt schauen was mit meinem Code nicht stimmt!
Der Angreifer kann mit 3 Truppen angreifen, der Verteidiger verteidigt mit zweien. (jeweils maximal, aber ich gehe bei meinem Programm der Einfachheit halber davon aus, dass unendlich Truppen zur Verfügung stehen)
Die Augenzahl des höchsten Würfels des Angreifers wird mit der Augenzahl des höchsten Würfels des Verteidigers verglichen. Dasselbe geschieht mit dem zweithöchsten Angreiferwürfel und dem verbleibenden Verteidigerwürfel. Soweit hat der Angreifer den Vorteil, denn er kann die zwei besten Würfel der 3 gewürfelten auswählen.
Vorteil des Verteidigers: Bei Gleichstand gewinnt er.
Beispiel: Angreifer würfelt 5,4,2. Verteidiger würfelt 4,4.
Zuerst wird also die 5 des Angreifers mit einer 4 des Verteidigers verglichen - der Angreifer gewinnt, der Verteidiger verliert also eine Truppe. Jetzt wird der zweithöchste Wurf des Angreifers (4) mit dem zweithöchsten Wurf des Verteidigers (ebenfalls 4) verglichen. Da bei Gleichstand der Verteidiger gewinnt, verliert der Angreifer eine Truppe. Somit steht es bei diesem Durchlauf 1-1.
Da ich zu doof bin um die Wahrscheinlichkeiten zu berechnen habe ich dieses Programm geschrieben um die Probe auf's Exempel zu machen:
test.html:
<html> <head></head> <body> <FORM ACTION="bla.php" METHOD=POST> <INPUT NAME="durchlaufzahl"> Durchlaeufe.<br> <INPUT TYPE="submit"> </FORM> </body> </html>
bla.php:
<?php
mt_srand((double)microtime()*1000000); //Initialisierung des Zufallszahlengenerators
$durchlaufzahl = $_POST["durchlaufzahl"];
for ($i=0;$i<$durchlaufzahl;$i++) //Schleife fuer (durchlaufzahl) Durchgaenge
{ $a=mt_rand()%6+1; // $a, $b, $c sind Angreiferwuerfel
$b=mt_rand()%6+1;
$c=mt_rand()%6+1;
$y=mt_rand()%6+1; // $y, $z sind Verteidigerwuerfel
$z=mt_rand()%6+1;
//Bestimmung der 2 besten Angreiferwuerfel
if ($a>=$b>=$c)
{
$at1=$a;
$at2=$b;
}
else if ($a>=$c>=$b)
{
$at1=$a;
$at2=$c;
}
else if ($b>=$a>=$c)
{
$at1=$b;
$at2=$a;
}
else if ($b>=$c>=$a)
{
$at1=$b;
$at2=$c;
}
else if ($c>=$a>=$b)
{
$at1=$c;
$at2=$a;
}
else // ginge auch else if ($c>=$b>=$a) ?
{
$at1=$c;
$at2=$b;
}
//Sortieren der Verteidigerwuerfel
if ($y>=$z) {
vt1=$y; // $vt1 = Verteidigerwuerfel mit hoechstem Wert
vt2=$z; // $vt2 = Verteidigerwuerfel mit zweithoechstem Wert
} else {
vt1=$z;
vt2=$y;
}
//Abgleich der Ergebnisse bzw Auswertung
if ($vt1>=$at1) {
$vt++;
} else {
$at++;
}
if ($vt2>=$at2) {
$vt++;
} else {
$at++;
}
}
//Be- und Verrechnungen
$summe=$vt+$at;
$prozat=$at/$summe*100;
$prozvt=$vt/$summe*100;
//Ausgabe der Ergebnisse
echo $prozat,"% Angreifersiege. ( ",$at," von ",$summe,") <br>";
echo $prozvt,"% Verteidigersiege. ( ",$vt," von ",$summe,") <br>";
?>
Dieser Beitrag wurde von massemassimo bearbeitet: 10. August 2007 - 09:34

Hilfe
Neues Thema
Antworten

Nach oben


