1
0
Fork 0
mars-rover-kata/README.md

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