PHP战斗系统无限运行?

时间:2014-08-24 11:09:00

标签: php while-loop

我正在尝试用PHP创建一个简单的战斗系统。这是代码。

<?php
$my_atk = 20;
$my_def = 25;
$my_hp = 100;

$enemy_atk = 30;
$enemy_def = 15;
$enemy_hp = 80;

while($my_hp > 0 || $enemy_hp > 0) { 
    $enemyDef = intval($my_atk - $enemy_def / 2);
    $my_damage = rand(1,$enemyDef);

    $myDef = intval($enemy_atk - $my_def / 2);
    $enemy_damage = rand(1,$myDef);

    $my_hp_after = $my_hp - $enemy_damage;
    $enemy_hp_after = $enemy_hp - $my_damage;
    echo "Enemy damages you <b>$enemy_damage</b> (your hp <b>$my_hp_after</b> )<br>";
    echo "You damage enemy <b>$my_damage</b> (enemy hp <b>$enemy_hp_after</b>)<hr>";

    if($my_hp < 1) {
        echo "Enemy win the battle";
    }else{
        echo "You win the battle!";
    }
}
?>

当我跑步时,它会持续无限......

为什么它无限运行?

2 个答案:

答案 0 :(得分:2)

您设置了变量$my_hp_after$enemy_hp_after,但您永远不会更改$my_hp$enemy_hp,因此循环while($my_hp > 0 || $enemy_hp > 0)会永久持续

答案 1 :(得分:1)

您没有更改值$my_hp$enemy_hp。这就是每次值为零的原因,因此while循环永远持续。