我正在尝试用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!";
}
}
?>
当我跑步时,它会持续无限......
为什么它无限运行?
答案 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循环永远持续。