Kata Mars Rover

d'après le Dallas Hack Club.

- Antoine Vernois / @avernois

Mars Rover

Objectif

Écrire une API permettant de déplacer un robot sur une grille.

On vous donne :

  • le point de départ (x, y) du robot
  • sa direction initiale (N, S, E, W)
  • puis une suite de caractères décrivant les actions à effectuer

Règles

  • le robot reçoit un tableau de caractères de commandes
  • faire avancer / reculer le robot (f, b)
  • faire tourner le robot à gauche / droite (l, r)
  • seules les commandes "f, b, l et r" sont autorisées
  • le monde est "rond"
  • gestion d'obstacles
    • avant de se déplacer le robot détecte les obstacles.
    • si une suite de commande passe par un obstacle le robot va aussi loin que possible et mentionne l'obstacle

Exemple

Un robot situé à (0, 0) et orienté vers le Nord sur une grille de 100x100 se retrouvera en (2, 2) et orienté vers l'Est si on lui transmet les commandes "ffrff"

Conseils

  • utilisez les tests pour résoudre le problème petit à petit
  • ne vous préoccupez pas (trop) de la structure de données, refactorez au fil des tests !
  • n'hésitez pas à tester les commandes "internes" du robot pour gagner en assurance