1.7 KiB
1.7 KiB
Mars Rover Backend Kata
Welcome. This kata consist in a solution that translates commands sent from Earth to instructions that are understood by a Rover on Mars
Functional requirements
Given:
- a two dimensional map of Mars
- the initial starting point and direction of the Rover
When:
- a command is received
move `forward` or `backward` or rotate `left` or `right` (90 degrees)
Then:
- move the Rover
if the Rover disappears over the edge of the map (the horizon), continue on the other side (remember, Mars is a sphere)
Bonus point
After ensuring that the functional requirements have been met, as a bonus point (not necessary but more than welcome), add a new feature:
Given:
- a list of obstacles with their exact location
When:
- Rover moves
And:
- Rover encounters an obstacle
Then:
- report back the obstacle. The Rover should stay in its previous position
Your solution
Must (These points are mandatory)
- Fulfill the Functional Requirements stated in this readme
- Be testable. In a way that let checking that everything is working without execute the main app
- Be self compiled
- Be self executable
Should (Nice to have)
- Fulfill the Bonus point section of this readme
- Be bug free
- Use any design patterns you know and feel that help solve this problem
- Be extensible to allow the introduction of new features in an easy way
- Use any package dependency mechanism
- Have a SOLUTION.md containing all the relevant features of the provided solution
Evaluation
- The design and code over the usage of frameworks and libraries
- The evolution of the solution, not just the delivered code
- The easibility of extending the solution with feasible features