Tracks
/
Go
Go
/
Ejercicios
/
Nombre del robot
Nombre del robot

Nombre del robot

Intermedia

Instrucciones

Administra la configuración de fábrica de un robot.

Cuando un robot sale de la fábrica, no tiene nombre.

La primera vez que enciendes un robot, se genera un nombre aleatorio con el formato de dos letras mayúsculas seguidas de tres dígitos, como RX837 o BC811.

De vez en cuando hay que restablecer un robot a su configuración de fábrica, lo que significa que su nombre se borra. La próxima vez que lo consultes, ese robot responderá con un nuevo nombre aleatorio.

Los nombres deben ser aleatorios: no deben seguir una secuencia predecible. Usar nombres aleatorios implica un riesgo de colisiones. Tu solución debe asegurar que cada robot existente tenga un nombre único.

Implementación

Es posible que se agoten los nombres de robots: una vez que se hayan asignado todos los nombres posibles, se debe devolver un error.

Test adicional

Una vez que logres que go test pase, verás que hay un test en la suite de tests llamado TestCollisions que se omite de forma predeterminada, ya que puede tardar mucho. Este test crea nuevos robots hasta que ya no se puedan asignar más nombres nuevos al robot.

Para que el test se ejecute, elimina esta línea:

t.Skip("skipping test as it can take a long time to run if solution is sub-optimal.")

Para que este test pase, tendrás que asegurarte de que el nombre de un robot no se haya usado antes y de que los nombres se puedan asignar de forma eficiente.


Fuente

Una sesión de depuración con Paul Blackwell en gSchool.
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Go Exercism

¿Todo listo para empezar Nombre del robot?

Regístrate en Exercism para aprender y dominar Go con 34 conceptos165 ejercicios y mentoría humana real, todo gratis.