-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.php
41 lines (35 loc) · 1.37 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
declare(strict_types=1);
require_once __DIR__ . '/vendor/autoload.php';
use \MarsRover\Model\Coordinate\Coordinate;
use \MarsRover\Model\Plateau\Plateau;
use \MarsRover\Model\Rover\RoverSquad;
use \MarsRover\Model\Rover\RoverSetup;
use \MarsRover\Model\Rover\Rover;
use \MarsRover\Service\CommandsInputParser;
if (STDIN) {
$plateauInputLine = fgets(STDIN);
$plateauBorders = explode(" ", $plateauInputLine);
$Coordinate = new Coordinate($plateauBorders[0], $plateauBorders[1]);
$Plateau = new Plateau($Coordinate);
$RoverSquad = new RoverSquad();
$inputCommandNumber = 0;
$squadCounter = 0;
while (($input = fgets(STDIN)) !== false) {
if ($inputCommandNumber == 0) {
if ($RoverSquad->offsetExists($squadCounter) == false) {
$Rover = new Rover();
$Rover->setSetup(new RoverSetup($input));
$RoverSquad->offsetSet($squadCounter, $Rover);
}
$inputCommandNumber++;
} elseif ($inputCommandNumber == 1 && $RoverSquad->offsetExists($squadCounter)) {
$Rover = $RoverSquad->offsetGet($squadCounter);
$Rover->setCommands((new CommandsInputParser($input))->getCommandsCollection());
$inputCommandNumber = 0;
$squadCounter++;
}
}
$RoverSquad->execute();
echo $RoverSquad->getRoversSetupAsString();
}