class Gunner {
public $health;
public $attack;
function __construct($health, $attack) {
$this->health = $health;
$this->attack = $attack;
}
}
$player = array();
$player[] = new Gunner(100, 20);
$player[] = new Gunner(100, 20);
$player[] = new Gunner(100, 20);
$enemy = array();
$enemy[] = new Gunner(100, 20);
$enemy[] = new Gunner(100, 20);
只要两个数组都具有“实体”/对象,我就希望有一些循环运行。我怎么做?我想和每一个实体战斗,就像 $player[0] 会战斗(又名 rand(1,20))然后从对立面的生命值中移除直到它为 0。当它的值为 0 或更少时,我会移除数组中的实体(对象)。
我不确定 while 循环或从数组中删除的样子。
while ((count($attacker) > 0) && (count($defender) > 0))
{
$attacker_attack = rand(1, 25);
$defender[0]->health -= $attacker_attack;
if (!$defender[0]->IsAlive()) {
unset($defender[0]);
array_values($defender);
}
$defender_attack = rand(1, 20);
$attacker[0]->health -= $defender_attack;
if (!$attacker[0]->IsAlive()) {
unset($attacker[0]);
array_values($attacker);
}
}