Gère les paramètres d'usine des robots.
Quand un robot sort de l'usine, il n'a pas de nom.
La première fois qu'on allume un robot, un nom aléatoire lui est attribué, au format de deux lettres majuscules suivies de trois chiffres, comme RX837 ou BC811.
De temps en temps, il faut réinitialiser un robot à ses paramètres d'usine, ce qui efface son nom. La prochaine fois que tu lui demandes son nom, ce robot te répondra avec un nouveau nom aléatoire.
Les noms doivent être aléatoires : ils ne doivent pas suivre une séquence prévisible. Utiliser des noms aléatoires comporte un risque de collisions. Ta solution doit garantir que chaque robot existant possède un nom unique.
Il est possible d'épuiser les noms de robots : une fois que tous les noms de robots possibles ont été attribués, une erreur doit être renvoyée.
Une fois que go test passe, tu verras que la suite de tests contient un test nommé TestCollisions, qui est ignoré par défaut car il peut prendre beaucoup de temps.
Ce test crée de nouveaux robots jusqu'à ce qu'il ne soit plus possible d'attribuer un nouveau nom à un robot.
Pour que le test s'exécute, supprime cette ligne :
t.Skip("skipping test as it can take a long time to run if solution is sub-optimal.")
Pour que ce test passe, tu devras t'assurer que le nom d'un robot n'a pas déjà été utilisé et que les noms peuvent être attribués efficacement.
Inscris-toi sur Exercism pour apprendre et maîtriser Go avec 34 concepts165 exercices, et un vrai mentorat humain, le tout gratuitement.