Parcours
/
Go
Go
/
Exercices
/
Nom de robot
Nom de robot

Nom de robot

Moyen

Instructions

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.

Implémentation

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.

Test bonus

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.


Source

Une session de débogage avec Paul Blackwell à gSchool.
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Go Exercism

Prêt à commencer Nom de robot ?

Inscris-toi sur Exercism pour apprendre et maîtriser Go avec 34 concepts165 exercices, et un vrai mentorat humain, le tout gratuitement.