El juego Mastermind (y una implementación en Arduino)
En 1970 un experto en telecomunicaciones israelí llamado Mordecai Meirowitz inventó el Mastermind. ¿Qué tiene de especial este juego popular? ¿Y qué detalle en la caja generaba especulaciones y fascinación?
Si bien existen distintas implementaciones del Mastermind, la idea básica era adivinar un código de colores obteniendo en cada intento devoluciones para favorecer la siguiente inferencia. El jugador que creaba el código se llamaba code maker y el que adivinaba code breaker.
En 1977 la firma Invicta sacó una versión electrónica del Mastermind usando números en lugar de colores. Sobre esta versión decidí realizar una implementación para el Wio Terminal de la firma Seeed Studios. ¿Qué es el Wio Terminal? Una especie de Arduino con pantalla integrada, buzzer, botones y sensores.
Recibí esta placa un tiempo atrás para un proyecto y quedó postergada debido a complejidades para hacer funcionar el WiFi, lo cual es una lástima ya que es un muy lindo dispositivo con algunas características notables.
Escribí el código en C++ para generar dígitos al azar, aceptar ingresos del usuario con el joystick y otorgar las pistas: el primer dígito para la cantidad de números correctos en la posición correcta, el segundo para la cantidad de números correctos en la posición incorrecta.
El Mastermind es un juego sencillo y elegante al punto que se puede implementar con lápiz y papel. En clases de programación, tiene la complejidad justa para enseñar variables y condicionales.
Ahora sí ¿Qué detalle en su caja generaba especulaciones y fascinación? La caja del Mastermind presentaba la fotografia de un hombre enigmático, acompañado de una joven mujer oriental. ¿Quiénes eran estas personas? ¿Cuál era su vínculo y capacidades? ¿A quiénes esperaban en la penumbra de la habitación? Pequeños misterios colmados de ecos en tiempos donde era exquisitamente imposible saciar la avidez de información.
Demo en YouTube
TikTok sobre Mastermind
Tutorial en inglés
https://www.hackster.io/roni-bandini/electronic-mastermind-game-on-a-wio-terminal-230f0d
Código fuente