Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przestawienie ifów na pętle
Forum PHP.pl > Forum > Przedszkole
michal754
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
  1. while($newplayerhp > 0) {
  2.  
  3. }
michal754
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
Bo w pętli nigdzie nie zmieniasz wartości $creaturehp więc jak ma się skończyć ?
michal754
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
A co to to ma robić...
michal754
juz dzięki ogarnąłem sam
do{
$creaturehp = $creaturehp - ($playerdamage - $creaturedefense);
$playerhp = $playerhp - $creaturedamage;
echo 'zostalo ci &nbsp' .$playerhp. 'hp<br>', 'przeciwnikowi zostalo &nbsp' .$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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.