/** * @return array flat array of keys */ public function getPlayerControlledKeys(Player $player, $includeKing = true) { $controlledKeys = array(); foreach (PieceFilter::filterAlive($player->getPieces()) as $piece) { if ($includeKing || !$piece instanceof King) { $controlledKeys = array_merge($controlledKeys, $piece->getAttackTargetKeys()); } } return $controlledKeys; }
protected function getLastPiece(Player $player) { $pieces = PieceFilter::filterNotClass(PieceFilter::filterAlive($player->getPieces()), 'King'); return empty($pieces) ? null : $pieces[0]; }