El juego de la vida de Conway en Arduino UNO R4 WiFi

Roni Bandini
4 min readSep 11, 2023

--

El juego de la vida 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

Arduino UNO R4 WiFi con el front apurado en 3D

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.

Space ship

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)

Frente 3d para el Arduino UNO R4 WiFi

Con Fusion360 diseñé un frente apurado para ocultar la electrónica del UNO R4 WiFi, salvo el panel de led de 12x8 pixels.

Frente montado

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.

Glidder

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

El juego de mesa

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

Demo de El Juego de la vida de Conway en Arduino UNO R4 Wifi

TikTok

--

--

Roni Bandini

Contracultura maker 🛠️ Arte electrónico 💡Inteligencia Artificial