El juego de la vida de Conway en Arduino UNO R4 WiFi
Para programadores, hackers y nerds en general, el Juego de la Vida no es aquel juego de mesa que chorreaba status quo en los ochenta, sino un autómata celular desarrollado por John Horton Conway que reside en una matriz ortogonal de dos dimensiones.
Cada celda de la matriz representa una célula y la misma puede tener uno de dos estados: viva o muerta. Luego, cada célula interactúa con sus ocho vecinos de acuerdo a las siguientes reglas:
- Cualquier célula viva con menos de dos vecinos muere (underpopulation)
- Cualquier célula viva con dos o tres vecinos vivos pasa a la siguiente generación.
- Cualquier célula viva con más de tres vecinos muere (overpopulation)
- Cualquier célula muerta con exactamente tres vecinos revive (reproduction)
Manejo de la matríz del Arduino UNO R4 WiFi
El UNO R4 WiFi incluye entre muchas características una matriz de leds de 12x8 ideal para implementar el Juego de la Vida de Conway.
La programación de la matriz es bastante sencilla y no hace falta instalar ninguna librería externa.
#include "Arduino_LED_Matrix.h"
ArduinoLEDMatrix matrix;
matrix.begin();
byte allOn[MAX_Y][MAX_X] = {
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
};
matrix.renderBitmap(allOn, 8, 12);
Patrones
Durante la ejecución pueden aparecer patrones que se clasifican de acuerdo a su comportamiento. Existen los still lifes, que no cambian de una generación a la otra. Los oscillators, que vuelven a su estado inicial tras una serie finita de generaciones y los spaceships, que se trasladan por la matriz.
Código fuente de El Juego de la Vida
Descargar el archivo .ino, configurar el board UNO R4 WiFi en el Arduino IDE y hacer el Upload. Solo va a funcionar con la versión R4 WiFi ya que la versión Minima no tiene la matriz de leds.
Descargar El Juego de la Vida de Conway para Arduino UNO R4
Gabinete (sort of)
Con Fusion360 diseñé un frente apurado para ocultar la electrónica del UNO R4 WiFi, salvo el panel de led de 12x8 pixels.
Descargar el frente para imprimir en 3D
Seed State
Este implementación del Juego de la Vida se inicia por un seed al azar (celdas cargadas al azar con 1 o 0) o bien por uno de varios diseños predeterminados.
Incluye también un detector para reiniciarse si no hay cambios en x iteraciones o cuando llega a y iteraciones.
Ver también
Más sobre El Juego de la Vida de Conway
https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life
Como usar el LED Matrix
https://docs.arduino.cc/tutorials/uno-r4-wifi/led-matrix
Editor de matrices de Arduino para el UNO R4
https://ledmatrix-editor.arduino.cc/
El otro juego de la vida
Va foto de la caja vintage de El juego de la vida. Con 45 años o 9 jugabas mejor vistiendo sweater y camisa oxford.
Demo
TikTok