Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Przestawienie ifów na pętle
michal754
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 6.07.2014

Ostrzeżenie: (0%)
-----


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ś';
}



?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


  1. while($newplayerhp > 0) {
  2.  
  3. }
Go to the top of the page
+Quote Post
michal754
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 6.07.2014

Ostrzeżenie: (0%)
-----


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;
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Bo w pętli nigdzie nie zmieniasz wartości $creaturehp więc jak ma się skończyć ?
Go to the top of the page
+Quote Post
michal754
post
Post #5





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 6.07.2014

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A co to to ma robić...
Go to the top of the page
+Quote Post
michal754
post
Post #7





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 6.07.2014

Ostrzeżenie: (0%)
-----


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';
}
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:49