michal754
6.07.2014, 17:53:10
Witam chciałbym prosić o pomoc z przestawieniem tego kodu z ifów na pętle aby nie trzeba było dopisywać ifów tylko aby kod wykonywał się automatycznie aż wartość zejdzie poniżej 1.
Nie mam pomysłu jak zrobić to za pomocą pętli próbowałem z while ale pętla wyswietla mi się w nieskończoność.
<?php
$playerinfo = 'SELECT hp, attack, defense FROM players';
$playerinfo2 = mysql_query($playerinfo);
$playerinfo3 = mysql_fetch_array($playerinfo2);
$creatureinfo = 'SELECT * FROM creatures';
$creatureinfo2 = mysql_query($creatureinfo);
$creatureinfo3 = mysql_fetch_array($creatureinfo2);
$playerhp = $playerinfo3['hp'];
$playerattack = $playerinfo3['attack'];
$playerdefense = $playerinfo3['defense'];
$creaturehp = $creatureinfo3['hp'];
$creatureattack = $creatureinfo3['attack'];
$creaturedefense = $creatureinfo3['defense'];
$playerdamage = rand(1,20) + $playerattack;
$creaturedamage = rand (1,20) + $creatureattack;
$newcreaturehp = $creaturehp - ($playerdamage - $creaturedefense);
echo $newcreaturehp. '<br>';
$newplayerhp = $playerhp - ($creaturedamage - $playerdefense);
echo $newplayerhp. '<br>';
if ($newplayerhp<1) {
echo 'Przegraleś';
} elseif ($newcreaturehp<1) {
echo 'Wygraleś';
break;
}
$newcreaturehp2 = $newcreaturehp - ($playerdamage - $creaturedefense);
echo $newcreaturehp2;
if ($newplayerhp<1) {
echo 'Przegraleś';
} elseif ($newcreaturehp2<1) {
echo 'Wygraleś';
}
?>
Pyton_000
6.07.2014, 18:27:26
while($newplayerhp > 0) {
}
michal754
6.07.2014, 18:37:17
próbowałem coś takiego ale się pętla nie kończy
$playerhp = $playerinfo3['hp'];
$playerattack = $playerinfo3['attack'];
$playerdefense = $playerinfo3['defense'];
$creaturehp = $creatureinfo3['hp'];
$creatureattack = $creatureinfo3['attack'];
$creaturedefense = $creatureinfo3['defense'];
$playerdamage = rand(1,20) + $playerattack;
$creaturedamage = rand (1,20) + $creatureattack;
$newcreaturehp = $creaturehp - ($playerdamage - $creaturedefense);
$newplayerhp = $playerhp - ($creaturedamage - $playerdefense);
while($creaturehp>1) {
$newcreaturehp2 = $newcreaturehp - ($playerdamage - $creaturedefense);
$newcreaturehp3 = $newcreaturehp - $newcreaturehp2;
echo $newcreaturehp3;
Pyton_000
6.07.2014, 18:39:19
Bo w pętli nigdzie nie zmieniasz wartości $creaturehp więc jak ma się skończyć ?
michal754
6.07.2014, 18:45:58
a napisal bys mi tą pętle jak ma to wyglądać bym był wdzięczny bo się trochę pogubiłem a dopiero zaczynam zabawe z php.
Pyton_000
6.07.2014, 21:47:31
A co to to ma robić...
michal754
6.07.2014, 22:46:13
juz dzięki ogarnąłem sam
do{
$creaturehp = $creaturehp - ($playerdamage - $creaturedefense);
$playerhp = $playerhp - $creaturedamage;
echo 'zostalo ci  ' .$playerhp. 'hp<br>', 'przeciwnikowi zostalo  ' .$creaturehp. 'hp<br>';
} while($creaturehp>1 && $playerhp>1);
if($creaturehp<=1){
echo 'Wygrales';
} elseif($playerhp<=1){
echo 'Przegrales';
}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.