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);
両方の配列に「エンティティ」/オブジェクトがある限り、while ループを実行したいと考えています。それ、どうやったら出来るの?$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);
}
}