private function display(array $battlefieldElements) { $renderString = ''; $renderString .= self::EMPTY_FIELD . self::EMPTY_FIELD; $renderString .= implode(range(BattlefieldCreator::MIN_COLUMNS, BattlefieldCreator::MAX_COLUMNS), ' ') . "\n"; $rowLetter = AlphabetHelper::getChar(BattlefieldCreator::MIN_COLUMNS); foreach ($battlefieldElements as $row) { $renderString .= $rowLetter++ . self::EMPTY_FIELD . implode($row, ' ') . "\n"; } return $renderString; }
/** * @param $input * @return Coordinate * @throws DebugException * @throws NoInputException * @throws ValidationException */ public function handle($input) { $input = trim($input); if (!$input) { throw new NoInputException(); } if ($this->inputValidation->isDebugValid($input)) { throw new DebugException(); } if (!$this->inputValidation->isValid($input)) { throw new ValidationException(); } $char = substr($input, 0, 1); $number = substr($input, 1); $row = AlphabetHelper::getPosition($char); $column = intval($number); return new Coordinate($row, $column); }
/** * @param $input * @return bool */ public function isValid($input) { $input = trim($input); $char = substr($input, 0, 1); $row = substr($input, 1); if ($this->isDebugValid($input)) { return true; } if (!AlphabetHelper::isInAlphabet($char)) { return false; } $column = AlphabetHelper::getPosition($char); if ($column < BattlefieldCreator::MIN_COLUMNS || $column > BattlefieldCreator::MAX_COLUMNS) { return false; } if (intval($row) < BattlefieldCreator::MIN_ROWS || intval($row) > BattlefieldCreator::MAX_ROWS) { return false; } return true; }