/** * Конструктор ровера * * @param string $positionData Исходные данные ровера * @param string $plateauData Координаты верхнего правого угла плато */ public function __construct($positionData) { $this->plateau = Plateau::getInstance(); list($x, $y, $diraction) = explode(' ', $positionData); $this->setPosition($x, $y); $this->setDiraction($diraction); }
/** * Форма управления роверами */ public function result() { $input = Input::all(); if (empty($input)) { App::abort(404); } Plateau::getInstance()->setMaxCoordinates($input['plateau']); $rovers = []; foreach ($input['coordinates'] as $key => $coordinates) { try { $rover = new Rover($coordinates); $rovers["Ровер №{$key}"] = ['error' => false, 'message' => $rover->executeCommand($input['command'][$key])->getPosition()]; } catch (Exception $e) { $rovers["Ровер №{$key}"] = ['error' => true, 'message' => $e->getMessage()]; } } $plateauCoordinates = implode(' ', Plateau::getInstance()->getMaxCoordinates()); $this->layout->body = View::make('home.result', compact('rovers', 'plateauCoordinates')); }