Écris un simulateur de robot.
Le centre de tests d'une usine de robots a besoin d'un programme pour vérifier les déplacements des robots.
Les robots disposent de trois déplacements possibles :
Les robots sont placés sur une grille infinie hypothétique, orientés dans une direction particulière (north, east, south ou west) à un ensemble de coordonnées {x,y}, par exemple {3,8}, les coordonnées augmentant vers le nord et vers l'est.
Le robot reçoit alors une série d'instructions, après quoi le centre de tests vérifie sa nouvelle position et la direction dans laquelle il pointe.
Dans cet exercice, tu as peut-être remarqué que le stub définit des getters, comme getX(), alors que les tests accèdent directement à la valeur avec .x. Cela vient de la façon dont Groovy définit les propriétés. Décomposons cela :
Points clés sur les propriétés Groovy :
final).Dans cet exercice, on n'a spécifié que les getters nécessaires (et donc les propriétés correspondantes, comme expliqué ci-dessus) afin d'imposer une implémentation correcte. Tu es libre de choisir les champs (et leurs types) qui conviennent le mieux à ta solution.
Si tu veux approfondir le sujet des champs et des propriétés, consulte le chapitre 3.3. Fields and Properties dans la documentation Groovy.
Inscris-toi sur Exercism pour apprendre et maîtriser Groovy avec 66 exercices, et un vrai mentorat humain, le tout gratuitement.