|
1 |
| -# Requirements: |
| 1 | +## Specification |
| 2 | +A squad of robotic rovers is to be landed by NASA on a plateau on Mars. |
| 3 | +This plateau, which is curiously rectangular, must be navigated by the rovers so that their on |
| 4 | +board cameras can get a complete view of the surrounding terrain to send back to Earth. |
| 5 | +A rover's position is represented by a combination of an x and y co-ordinates and a letter |
| 6 | +representing one of the four cardinal compass points. The plateau is divided up into a grid to |
| 7 | +simplify navigation. An example position might be 0, 0, N, which means the rover is in the |
| 8 | +bottom left corner and facing North. |
| 9 | +In order to control a rover, NASA sends a simple string of letters. The possible letters are 'L', 'R' |
| 10 | +and 'M'. 'L' and 'R' makes the rover spin 90 degrees left or right respectively, without moving |
| 11 | +from its current spot. |
| 12 | +'M' means move forward one grid point, and maintain the same heading. |
| 13 | +Assume that the square directly North from (x, y) is (x, y+1). |
| 14 | +\ |
| 15 | +\ |
| 16 | +**Input:**\ |
| 17 | +The first line of input is the upper-right coordinates of the plateau, the lower-left coordinates are |
| 18 | +assumed to be 0,0. |
| 19 | +The rest of the input is information pertaining to the rovers that have been deployed. Each rover |
| 20 | +has two lines of input. The first line gives the rover's position, and the second line is a series of |
| 21 | +instructions telling the rover how to explore the plateau. |
| 22 | +The position is made up of two integers and a letter separated by spaces, corresponding to the |
| 23 | +x and y co-ordinates and the rover's orientation. |
| 24 | +Each rover will be finished sequentially, which means that the second rover won't start to move |
| 25 | +until the first one has finished moving. |
| 26 | +\ |
| 27 | +\ |
| 28 | +**Output:**\ |
| 29 | +The output for each rover should be its final co-ordinates and heading |
| 30 | + |
| 31 | + |
| 32 | +## Requirements: |
2 | 33 | - php 8.1
|
| 34 | +- Ubuntu. Sorry for this requirement, but I did not use docker\vagrant in this task and did not run on Windows CLI. |
3 | 35 |
|
4 |
| -# Setup |
| 36 | +## Setup |
5 | 37 | 1. Run `php composer.phar install`
|
6 | 38 |
|
7 |
| -# Check NASA rovers` position |
8 |
| -To check position of NASA rovers position run command from console: `php bin/console app:nasa-rovers` |
| 39 | +## About command |
| 40 | +To check position of NASA rovers position run command from console: `php bin/console app:nasa-rovers`. |
| 41 | +\ |
| 42 | +Command will ask you to write top-right coordinates (`5 5` for example) and then will ask to write rovers start positions and lists of actions. |
| 43 | +\ |
| 44 | +To finish enter rovers information you should press `Ctrl+D` buttons combination. |
| 45 | + |
| 46 | +## About tests |
| 47 | +To run tests use composer command: `php composer.phar tests` |
0 commit comments