public static function hasUnfinishedShips(Battlefield $battlefield) : bool { foreach ($battlefield->getCells() as $cell) { if ($cell->hasFlag(CellModel::FLAG_SHIP) && !$cell->hasFlag(CellModel::FLAG_DEAD)) { return true; } } return false; }
/** * @param Battlefield $battlefield * * @return Cell[] */ public function chooseCells(Battlefield $battlefield) : array { foreach ($battlefield->getCells() as $cell) { if (!$cell->hasFlag(CellModel::FLAG_DEAD_SHIP) || CellModel::isShipDead($cell)) { continue; } return $this->processor->process($cell, $this->chooseStrategy($cell)); } return []; }
public function addBattlefield(Battlefield $battlefield) : self { $this->battlefields[] = $battlefield; if (PlayerModel::isAIControlled($battlefield->getPlayer())) { foreach ($battlefield->getCells() as $cell) { $cell->setFlags(CellModel::FLAG_NONE); } } return $this; }