Connect with us

Hi, what are you looking for?

Tecnología

Nuevo reto lúdico: el juego de la vida de Conway

Hoy en día estamos acostumbrados a luminosos videojuegos que emociona, excitan a los jugadores y en ocasiones incluso pueden jugarse por muchas personas al mismo tiempo en servidores dedicados a ello. Muchos videojuegos hacen énfasis en las habilidades manuales del jugador y sus reflejos, los cuales bien pueden convertirse en juegos populares e incluso adictivos.

NASA comparte primer video en 8K desde el espacio y WOW

Pero también hay juegos que caen en categorías que resultan hasta curiosas. Este es el caso del juego de, la vida de Conway, un juego de cero-personas, inventado por el matemático John Conway, cuando éste trabajaba en la Universidad de Cambridge. El juego se conoció ampliamente a partir del artículo de Martin Gardner en Scientific American, de octubre de 1970 e inmediatamente se volvió un ejercicio adictivo en cómputo.


Morsa con Conway en la Facultad de Ciencias de la UNAM

John Conway (de amarillo) con el autor de este artículo

El juego se desarrolla en una malla cuadriculada, en donde en los casilleros de la misma (llamadas celdas), se colocan células o bien se dejan vacíos. Las reglas son sencillas, cuando hay una configuración de celdas ocupadas y vacías, se tiene que:

  1. Cada célula con una o sin células vecinas se muere, por soledad.
  2. Cada célula con cuatro o mas células vecinas mueren, por sobrepoblación.
  3. Cada células con dos o tres vecinas, sobrevive.

Así, el juego consiste en que el usuario genere una configuración de células y aplique las reglas mencionadas en paralelo para cada celda. Eso hará la siguiente generación, a la cual se le aplicará el mismo algoritmo. Un ejemplo del juego de la vida de Conway puede verse aquí, en donde el lector podrá generar las configuración que quiera y ver cómo evoluciona en el tiempo. En eso, de hecho, consiste el juego. No hay que interactuar de ninguna manera una vez que se ha generado una configuración de celdas.

Conway y mucha gente dedicó muchas horas al juego de la vida tratando de encontrar las propiedades de las diferentes configuraciones y se tienen conclusiones fantásticas, por ejemplo, que el juego de la vida es “Turing completo”, es decir, se puede crear una máquina de Turing que pueda hacer cualquier cálculo. Tal vez por ello la importancia de este “juego”. Cabe decir que además, Conway redujo la idea de los autómatas celulares que en un principio von Neumann había estudiado y en donde -según él- su diseño requería de 29 propiedades y reglas, a algo mucho más escueto pero igualmente poderoso.

Pues bien, el juego de la vida de Conway eventualmente fue programado infinidad de meses y se tienen reiteradas sospechas de que usó mucho “tiempo de máquina” en computadoras grandes, en aquellas máquinas que solamente las podían tener en esos tiempos las instituciones académicas y las instancias gubernamentales. Sin embargo, el juego -como ya dijimos- es mucho más que un simple juego, y quizás sea un interesante modelo teórico para desarrollar ideas en matemáticas e inclusive, en la biología.

Pues bien, considerando eso, el reto consiste en desarrollar un programa que juegue al juego de la vida de Conway. Se puede desarrollar en cualquier lenguaje y sería interesante (puntos extras), a quien lo desarrolle en algún lenguaje que no haya sido ya escrito en Rosetta Code. Es cierto que en este sitio pueden verse ya mucho código fuente que resuelve el problema pero aquí el reto es que usted lector/lectora, lo resuelva.

Para ser más claros, el juego de la vida se representa así:

Una célula C se representa por 1 cuando está viva y 0 cuando está muerta, en una matriz cuadrada de m x m casilleros o celdas. Calculamos N, la suma de las células vidas en las ocho celdas en la vecindad de cada célula C, y entonces tenemos a una célula que sobrevive o que muere en la siguiente generación basándose en lo siguiente:

  • Si una célula está en 1 y tiene 0 o 1 vecino (una célula en 1), entonces en la posición de la célula se pinta un 0 (muerte por soledad).
  • Si una célula está en 1 y hay una vecindad con 4, 5, 6, 7 y 8 celdas vecinas ocupadas, entonces se pinta un 0 en la siguiente generación (muerte por sobrepoblación)
  • Si la célula de interés tiene un 1 y la vecindad de la misma tiene 2 o 3 células en 1, entonces sobrevive con un 1 en la siguiente generación.
  • Si la célula tiene 0 en el punto de interés y hay 3 células alrededor, se pondrá un 1 en la siguiente generación (tres células dan el nacimiento de una nueva).
  • Si la célula es 0 y hay 0, 1, 2, 4, 5, 6, 7, 8 entonces en la siguiente generación se pondrá un 0.

El programa a escribir debe hacerse en cualquier lenguaje que se deseé. Puede ser compilado o interpretado y tiene puntos extras si el lenguaje usado no está en las implementaciones hechas ya en el sitio de Rosetta Code. Desde luego, se puede hacer en un algún lenguaje ya usado, por ejemplo C, C#, Haskell incluso, pero si alguien me va a mandar el código le suplico que no lo copie y que busque ser original. Si detecto copia lo descalifico.

La idea es pues aprender y este es un ejercicio simple pero interesante, además de que puede ser muy útil para probar una serie de teorías al respecto de los patrones, de ciertas configuraciones, de la estabilidad de algunas de estas células, etcétera. En Conway Life hay mucha información interesante.

Al ganador (si es de la Ciudad de México), le daré una taza con el logotipo de la Morsa. Si es de otro país o de provincia, le mandaré un USB de al menos 8 GB. La razón de esto es que mandar una taza por mensajería es estúpidamente caro.

Las soluciones me las pueden mandar a morsa@la-morsa.com.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero o que cumpla con más características que le den mejores resultados. El ganador es inapelable y cede su código fuente a la comunidad. Es decir, se promueve el código abierto.

La entrada Nuevo reto lúdico: el juego de la vida de Conway se publicó primero en unocero.

Click to comment

Comenta

Últimas noticias

Persona caminando de noche cerca de establecimiento iluminado, relacionada con incidente en Mazatlán.

Mazatlán

En Mazatlán📍 reportan lanzamiento de artefactos explosivos💥 en depósito sobre Gutiérrez Nájera, antes de Los Monos Bichis; lesiones desconocidas. #Mazatlán #Seguridad #Sinaloa

Soldados en operativo militar tras asesinato de Efraín Medina; vehículo rojo en escena. Soldados en operativo militar tras asesinato de Efraín Medina; vehículo rojo en escena.

Nacionales

Efraín Medina Valenzuela fue asesinado a balazos en Villa de Álvarez; autoridades investigan ataque en motocicleta y acompañante herida 🚨🕯️🚑 #Colima #Seguridad

Camionetas Toyota cubiertas de polvo, parte del operativo de recuperación de vehículos robados en Navolato Camionetas Toyota cubiertas de polvo, parte del operativo de recuperación de vehículos robados en Navolato

Navolato

En Navolato, fuerzas federales y estatales recuperaron cuatro vehículos robados 🚗 🚙 y aseguraron unidades, puestas a disposición del Ministerio Público. #Seguridad

Logos de Disney+, Netflix, HBO Max y Prime Video relacionados con la nueva ley de protección al consumidor en México. Logos de Disney+, Netflix, HBO Max y Prime Video relacionados con la nueva ley de protección al consumidor en México.

Actualización

Entra en vigor la reforma contra cobros automáticos: usuarios tienen cancelación inmediata, aviso previo y mayor transparencia 🛡️ 🔔 ✋ #LFPC #ProtecciónAlConsumidor

Sombrillas rojas y blancas en playa clausurada por Profepa en Mazatlán, Sinaloa Sombrillas rojas y blancas en playa clausurada por Profepa en Mazatlán, Sinaloa

Mazatlán

Profepa suspendió y clausuró obra en playa del Malecón, Mazatlán por denuncia ciudadana; faltaban concesión y permisos ambientales. 🚨 🏝️ #Mazatlán #Ambiente

Tres personas en entorno formal discuten dictámenes legislativos en Sinaloa. Tres personas en entorno formal discuten dictámenes legislativos en Sinaloa.

Culiacán

La comisión de justicia aprobó dictámenes para sancionar delitos cibernéticos y acoso sexual en transporte público, buscando protección ciudadana urgente. 🚨👩‍⚖️ #seguridad #legislativo

Suscríbete y recibe noticias

Tendencia

Nacionales

La Marina mantiene sitiado El Durazno, Durango ⚓️, tras operativo para capturar a Aureliano El Guano Guzmán Loera 🚨 #Durango #Marina #ElGuano

Sinaloa

Secretaría de Salud informó que el nuevo hospital IMSS Culiacán tendrá 260 camas, 39 especialidades y helipuerto en 2026 🚁 🏥 #IMSS

Mazatlán

Accidente en motocicleta en carretera México 15 sur, Castillo, Mazatlán, deja un menor fallecido, Diego Manuel, 15; otro lesionado. 🚑🏍️ #Mazatlán

Concordia

Reportan desaparecidos trece jornaleros y conductor desde madrugada en Concordia, Sinaloa; Yamoldcar Tours presentó denuncias y Sabuesas activan búsqueda. 🔎🚌 #desaparecidos #Concordia

Sinaloa

La Fiscalía FGE activó Alerta AMBER Mazatlán📍 tras la desaparición⚠️ de Brayan y Brandon; llaman a denunciar confidencialmente al 800-890-90-92. #AlertaAMBER #Mazatlán

Mazatlán

Reportan en carretera Mazatlán-Tepic km 187 retorno de personas tras asaltos del crimen organizado; Guardia Nacional se retiró 🚨 🚗 #MazatlánTepic #Seguridad

Deportes

En Mazatlán, Marco 'El Green' Verde venció por decisión unánime en el CUM en casa; la afición celebró 🥊 🏆 #Mazatlán #Sinaloa

Concordia

Fiscalía y Comisión emitieron fichas por seis desaparecidos en Concordia tras salir en combi blanca rumbo a Mazatlán 🚐🔎 #desaparecidos #Concordia

Desarrollado por
FIIXCOM