1
0
Fork 0
Go to file
Xavier Fontanet d2aa5cd22f images fix 2024-06-24 17:21:37 +02:00
mars-station apply JPMS to user interface module and improve some namings 2024-06-24 16:28:54 +02:00
misc/images images fix 2024-06-24 17:21:37 +02:00
rover-api apply JPMS to user interface module and improve some namings 2024-06-24 16:28:54 +02:00
rover-commands apply JPMS to user interface module and improve some namings 2024-06-24 16:28:54 +02:00
tests-suite apply JPMS to user interface module and improve some namings 2024-06-24 16:28:54 +02:00
user-interface-console apply JPMS to user interface module and improve some namings 2024-06-24 16:28:54 +02:00
.gitignore minimal needed .gitignore 2024-06-20 14:30:58 +02:00
README.md remove Wallapop references in readme 2024-06-23 13:04:49 +02:00
SOLUTION.md images fix 2024-06-24 17:21:37 +02:00
pom.xml apply JPMS to user interface module and improve some namings 2024-06-24 16:28:54 +02:00

README.md

Mars Rover Backend Kata

Welcome. We need a solution that translates commands sent from Earth to instructions that are understood by our 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.
  • Refactor the provided code, creating new classes, methods or whatever needed.
  • Use any JVM language but, if you want to use one other than Java, please convert the initial codebase to that language.
  • Be testable. This means that we should not need to run the main app in order to check that everything is working.
  • Be self compiled.
  • Be self executable.
  • Have a SOLUTION.md containing all the relevant features of your provided solution.

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.

Evaluation

  • We will focus on your design and on your own code over the usage of frameworks and libraries
  • We will also take into account the evolution of your solution, not just the delivered code
  • We will evolve your solution with feasible features and evaluate how complex it is to implement them

Thanks!!