<? Class Fight { function Oblicz( $arrParams ) { if( $arrParams[1]['wpn'] == 1 ) { $arrParams[1]['wpn'] = 11; $arrParams[1]['deff'] = 8; } else { $arrParams[1]['wpn'] = 15; $arrParams[1]['deff'] = 4; } if( $arrParams[2]['wpn'] == 1 ) { $arrParams[2]['wpn'] = 11; $arrParams[2]['deff'] = 8; } else { $arrParams[2]['wpn'] = 15; $arrParams[2]['deff'] = 4; } $arrParams[1]['hp'] = $arrParams[1]['pw'] * 15 + $arrParams[1]['deff'] * 4; $arrParams[2]['hp'] = $arrParams[2]['pw'] * 15 + $arrParams[2]['deff'] * 4; return $arrParams; } function Hit( $arrParams, $intKiller, $intDie, $logFight ) { #Obiczamy moc hita #Test uniku $unik = $arrParams[$intDie]['zr']; if( $rand <= $unik ) { $return = 'unik'; #Test odpowiedzi if( $arrParams[$intDie]['sz'] > $arrParams[$intKiller]['zr'] ) { #Udalo się odparcie ataku $return = 'odp'; #Obliczamy moc hita } } switch ($return) { case 'unik': $logFight[] = $arrParams[$intKiller]['name'].' próbuje zadać ciosu'; $logFight[] = $arrParams[$intDie]['name'].' robi unik'; break; case 'odp': $logFight[] = $arrParams[$intKiller]['name'].' wymachuje niezdarnie mieczem, nie trafia'; $logFight[] = $arrParams[$intDie]['name'].' wykorzustując okazje zadaje '.$hit.' obrażeń'; $arrParams[$intKiller]['hp'] = $arrParams[$intKiller]['hp'] - $hit; break; default: $logFight[] = $arrParams[$intKiller]['name'].' trafia w przeciwnika, '.$arrParams[$intDie]['name'].' traci '.$hit.' życia'; $arrParams[$intDie]['hp'] = $arrParams[$intDie]['hp'] - $hit; break; } } function Walka( $arrParams ) { $arrParams = $this->Oblicz( $arrParams ); //while( $arrParams[1]['hp'] != 0 AND $arrParams[1]['hp'] != 0 ) { // tutaj jest ta pętla, próbowałem też dawać np.for($x=0;$x<5;$x++) { for($i=1;$i<=2;$i++) { if($i==1) { $x = 2; } else { $x = 1; } if( $arrParams[1]['hp'] > 0 AND $arrParams[1]['hp'] > 0 ) { $walka = $this->Hit( $arrParams, $i, $x, $logFight ); $logFight = $walka['log']; $arrParams = $walka['arrParams']; if( $arrParams[1]['hp'] <= 0 ) { $logFight[] = $arrParams[1]['name'].' Ginie !'; $logFight[] = $arrParams[2]['name'].' Wygrał pojedynek !'; } elseif ( $arrParams[2]['hp'] <= 0 ) { $logFight[] = $arrParams[2]['name'].' Ginie !'; $logFight[] = $arrParams[1]['name'].' Wygrał pojedynek !'; } } } //} return $logFight; } } ?>
a tutaj plik test
<? if($_POST['btn']=="GO!") { require_once 'la.php'; $fight = new Fight; 'pw' => $_POST['pw1'], 'str' => $_POST['str1'], 'wpn' => $_POST['wpn1'], 'zr' => $_POST['zr1'], 'sz' => $_POST['sz1'], 'name' => $_POST['name1'] ), 'pw' => $_POST['pw2'], 'str' => $_POST['str2'], 'wpn' => $_POST['wpn2'], 'zr' => $_POST['zr2'], 'sz' => $_POST['sz2'], 'name' => $_POST['name2'] ) ); } ?>
I problem jest taki: jak odkomentuje pętlę w klasie Fight (ta przy której jest komentarz), nie ważne czy to pętla for czy while, ładuje się aż wyskoczy max_execution_time limit reached. Nie wiecie co tu może być nie tak ?