Rutas
/
Go
Go
/
Ejercicios
/
Nombre de robot
Nombre de robot

Nombre de robot

Media

Instrucciones

Gestiona 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 se lo preguntes, ese robot responderá con un nombre aleatorio nuevo.

Los nombres deben ser aleatorios: no deben seguir una secuencia predecible. Usar nombres aleatorios conlleva un riesgo de colisiones. Tu solución debe garantizar que todos los robots existentes tengan un nombre único.

Implementación

Es posible quedarse sin nombres de robots: una vez asignados todos los nombres de robot posibles, se debe devolver un error.

Prueba adicional

Cuando consigas que go test pase, verás que hay una prueba en la suite de pruebas llamada TestCollisions que se omite de forma predeterminada, ya que puede tardar mucho tiempo. Esta prueba crea robots nuevos hasta que ya no se puedan asignar más nombres nuevos al robot.

Para que la prueba 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 esta prueba 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 pestaña nueva
Go Exercism

¿Listo para empezar Nombre de robot?

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