Also, ich berechne einen Kampf zwischen 2 Clienten.
Zuerst initialisiere ich die Schiffe.
Dann feuert jedes Schiff einmal per Zufall auf ein x-belibiges Schiff des gegners. Jedes mal wenn ein schiff schießt, wird per "rand();" ermittelt auf welches Schiff geschossen wird. Wenn ich nun 10 gegen 10 habe wird also 20 mal eine Zufallszahl ermittelt und dann gerechnet. Angriff gegen Verteidigung usw. Das klappt auch alles. Aber wenn es 10.000 gegen 10.000 sind, dann dauert das ganze schon extrem lange.
Hier mal eine WhileSchleife für nur eine Art von Schiff ( insgesamt 14 verschiedene gibt es )
PHP-Code:
$schiff=10000;
while($schiff>0)
{
$zufall=rand(1,14);
if($zufall==1){
//wenn die Zufallszahl eins ist wird auf schiff y geschossen
if($verteidiger['y']>0){
//es wird nur geschossen wenn es das schiff y auch gibt
// nun würde der Kampf ausgeführt ( nur ein paar kleine berechnungen )
}else{
/*wenn es das gegnerische Schiff garnicht gibt, wird auch keine Schuss von meinen Schiffen abgezogen, sonder die Whileschleife einfach nochmal durchgegangen und das immer so lange, bis ich ein Schiff treffe, das auch im Kampf verwickelt ist.*/
$schiff++;
}}
$schiff--;
}
So, ich schätze es dauert manchmal sehr lange, weil es ja sein kann, das 1000 mal ins Leere gefeuert wird ( das Gegnerische schiff, auf welches geschossen wird ist nicht vorhanden ). Die While-Schleife sollte ja eigentlich 10.000 mal durchlaufen. Wenn der Gegner aber nur eine Art von Schiff hat, obwohl es 14 sein können.