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