0% encontró este documento útil (0 votos)
580 vistas13 páginas

Juego de La Vida Python

Este documento describe el Juego de la Vida, un autómata celular creado por John Conway en 1970. El juego se desarrolla en una rejilla bidimensional infinita donde cada célula puede estar viva o muerta, y su estado depende de las reglas de supervivencia basadas en el número de vecinas vivas. El documento explica la historia, reglas y patrones básicos del juego, incluyendo patrones inmortales que permanecen estables indefinidamente.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
580 vistas13 páginas

Juego de La Vida Python

Este documento describe el Juego de la Vida, un autómata celular creado por John Conway en 1970. El juego se desarrolla en una rejilla bidimensional infinita donde cada célula puede estar viva o muerta, y su estado depende de las reglas de supervivencia basadas en el número de vecinas vivas. El documento explica la historia, reglas y patrones básicos del juego, incluyendo patrones inmortales que permanecen estables indefinidamente.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 13

EL JUEGO DE LA VIDA

[Inteligencia en redes de comunicaciones]

ABSTRACT por un matemtico de renombre, John Von


Newman quien intento crear una mquina
Este trabajo se centra en el conocido hipottica que fuera capaz de construir copias de
como Juego de la vida, su historia, si misma, cosa que consigui basndose en un
funcionamiento y reglas, estudio de patrones y el modelo matemtico que se desarrollaba en
uso de algoritmos para su optimizacin e tablero cuadriculado con una gran cantidad de
implementacin. normas complejas, creando lo que pasara a
denominarse desde entonces un autmata celular.
El juego de la vida es el exitoso intento de John
Horton Conway de simplificar las indeas de John
1. DEFINICIN von Newman.

El Juego de la vida es un autmata Diseado en 1970, fue mostrado al


celular, es decir, un modelo matemtico para un pblico por primera vez en Octubre de ese mismo
sistema dinmico que evoluciona en pasos ao, a travs de un artculo publicado en la revista
discretos, que se compone de una rejilla o Scientific American, en la columna Mathematical
tablero extendida hasta el infinito Games de Martin Gadner atrayendo rpidamente
(tericamente) en sus dos dimensiones que la atencin de la mayora debido a que a pesar de
delimita unas celdas sobre las cual se van a su tremenda sencillez consegua, mediante la
producir las interacciones. evolucin de los patrones dentro del juego
desarrollar un motor muy potente, llegando
Este juego puede ser encuadrado en la incluso a equivaler a una mquina universal de
categora de los llamados "juegos de Turing, permitiendo la posibilidad de cualquier
simulacin", denominacin que reciben por problema que sea computable algortmicamente,
imitar procesos de la vida real. pueda procesarse mediante el juego de la vida. Es
interesante observar como patrones muy
complejos pueden surgir a partir de la
2. HISTORIA implementacin de unas reglas tan sencillas.

Otro de los factores que impulso el xito


Este juego fue diseado por el del juego de la vida era su similitud con algunos
matemtico britnico John Horton Conway, de los procesos evolutivos que determinan el
conocido por la mayora precisamente por su surgimiento, decadencia y alteraciones que
teora de juegos combinatorios, aunque siendo experimentan las sociedades de seres vivos, tanto
participe tambin en la teoras como la teora de a nuestro nivel como a nivel celular, y no slo eso
nudos, teora de nmeros y teora de cdigos. ya que fsicos, matemticos, bilogos e incluso
economistas y
Conway estaba interesado en solventar
un problema presentado en los aos cuarenta
filsofos pudieron apreciar su potencial para
asemejar de algn modo procesos en sus
correspondientes campos, aunque sea a un nivel
didctico en mayor medida.

3. REGLAS DE EL JUEGO

Este juego est basado en la evolucin de


estados sucesivos, en los cuales las condiciones
del estado futuro dependen solamente de las Clula viva
condiciones del estado anterior, por tanto no se Celda vaca
requiere de la entrada de datos durante el
desarrollo del mismo, y es tan slo el estado
inicial y las normas del juego lo que determinada 1.1 Reglas originales: Leyes genticas
el desarrollo del juego. Por tanto la participacin de Conway:
en el mismo nicamente consiste en determinar
las condiciones iniciales en funcin del resultado 1- Supervivencia: Cada individuo o clula
que se quiera obtener en un nmero de turnos que cumpla el requisito de tener 2 3 vecinos
concreto, o a perpetuidad. vivos sobrevive a la siguiente generacin (por
tanto su estado se mantiene inalterado en el
El juego se desarrolla en un tablero (el siguiente turno.
mundo) infinito tericamente, y de unas
dimensionas prefijadas en la prctica, 2- Fallecimiento: Una clula viva que tenga
subdividido en forma de retcula mediante filas y menos de 2 vecinos fallece por aislamiento o
columnas en celdas. Cada una de las celdas de la soledad en el siguiente estado o turno. Una clula
retcula quedan por tanto rodeadas por otras ocho viva que tenga ms de trs vecinos vivos muere
casillas que determinan su vecindad. por superpoblacin en el siguiente estado o turno.
Estas celdas albergan lo que se 3- Nacimiento: Si una celda vaca pasa a
denominan clulas que pueden encontrarse en tener en su vecindad exactamente 3 clulas vivas
dos estados distintos, clula viva (podra su estado futuro en el siguiente turno ser el de
considerarse un uno lgico) o clula muerta clula viva (nacimiento de nuevo individuo).
(cero lgico) el estado de una clula en el
futuro depender tanto de su estado actual como Segn se empieza a experimentar se
del estado actual de sus clulas vecinas, encuentra que la poblacin empieza a
siguiendo unas simples reglas establecidas. evolucionar cambios inslitos o inesperados, a
Una clula al morir deja vaca la celda ojos del jugador estas reglas a veces crean la
que ocupaba. sensacin de dar un resultado catico e
impredecible.
Como ya se ha comentado el jugador es
por tanto quien determina las condiciones Normalmente segn estas reglas se puede
iniciales de unas determinadas clulas, creando llegar a diversas situaciones final trascurrido un
lo que se denomina poblacin inicial o nmero determinado de turnos:
generacin cero.
-Extincin: al cabo de un nmero finito de
generaciones desaparecen todos los miembros de
la poblacin o clulas vivas.
- Estabilizacin: al cabo de un nmero finito
de generaciones la poblacin queda estabilizada, 2.1 Inmortales.
bien de forma rgida e inamovible, bien de forma
oscilante entre dos o ms formas. Se trata de patrones continuos que
debido a su configuracin estable permanecen
-Crecimiento constante: la poblacin crece inalterados turno tras turno y generacin tras
turno tras turno y se mantiene as un nmero generacin por s mismos, es decir siempre y
infinito de generaciones. En un principio esta cuando no sean influenciados por la interaccin
evolucin solo se contemplo de forma terica, con otros patrones crecientes. Cuando estos
aunque ms tarde se encontrarn patrones que patrones inmortales se encuentran agrupados
crecan de forma indefinida, durante un numero pueden clasificarse entre seudo-inmortales (no
infinito de turnos. existe dependencia alguna entre los patrones para
su futura supervivencia) y inmortales- estrictos
Estas reglas se denominan leyes genticas de (patrones discontinuos en los cuales existe una
Conway y se simbolizan como 2,3 / 3 dependencia entre ellos para su futura
(condiciones de supervivencia / condiciones de supervivencia. Algunos de los patrones
nacimiento) y fueron las reglas originales inmortales ms conocidos son:
formuladas por John Horton Conway, sin
embargo no son las nicas, ya que existen - El bloque (Block): es el patrn inmortal ms
variaciones de stas. sencillo

2. PATRONES

Antes de seguir profundizando en el


juego es necesario definir lo que se denominan
patrones bsicos. Los patrones bsicos no son
ms que configuraciones de vecindades de
clulas que determinan un comportamiento
concreto con un nmero mnimo de clulas vivas
en la estructura. Estos comportamientos pueden -El doble bloque (Bi-block): es el patrn pseudo-
ser diversos: periodicidades y cambios ante entre inmortal ms simple:
diversas formas, patrones que se desplazan por el
tablero de juego, patrones que se duplican o
crecen de forma indeterminada, etc. Algunos de
estos patrones se generan conf facilidad de forma
instantnea durante el desarrollo de juego y otros
son interesantes por su comportamiento,
pudiendo responder a leyes algebraicas,
formndose incluso estructuras complejas que
podran corresponderse con puertas lgicas -La colmena (Beehive): pueden encontrarse de
AND, OR y NOT. forma aislada, pero lo mas comn esque aparezca
de forma apareada o en grupos de cuatro,
Estos patrones bsicos y sus formando el patron pseudo-inmortal llamado
comportamientos han sido determinados o panal de miel (Honey farm).
hallado por aficionados al juego en el cual vean
un desafo de programacin, de hecho se
extendi todo un movimiento en torno a este
juego, que en ocasiones llegaba a tener
connotaciones filosficas. Llegaron a crearse
concursos de bsqueda de patrones interesantes,
incluso el propio Conway ofreci un premio de
50 dlares para aquel que encontrara un patrn
que creciera de forma indefinida.
-El arpa (Harp): se trata del patrn inmortal
estricto ms pequeo conocido, en el cual la
modificacin de cualquiera de las islas provoca
-La hogaza (Loaf): en ocasiones aparecen de la muerte del patrn. Su formacin casual es
forma apareada y continua formando una doble muy improbable debido a que requiere una gran
hogaza (Bi-loaf). El patrn seudo inmortal simetra en un determinado turno.
formado por dos dobles hogazas se denomina
panadera(bakery)

-Depredador (eater): se trata de un patrn


inmortal estricto llamado as por su capacidad
de absorber objetos que golpeen contra el
-El barco (Boat): puede aparecer en diversos bloque sin alterar su forma original tras ello.
tamaos:

-El navo (Ship): variacin de el barco.


- Otros patrones inmortales: (de izquierda a
derecha y de arriba abajo) la canoa (canoe), el
carguero (carrier), signo de integrar (integral
sign), la serpiente (snake), la charca (pond) y el
mango (mango).

-El tubo (tube):


2.2 Astronaves -Nave ligera (Lightweight spaceship): Se
desplaza a lo largo del tablero de forma
Las astronaves (spaceships) son horizontal o vertical, a una velocidad de c/2.
patrones que se caracterizan por desplazarse a
travs del tablero a lo largo del tiempo, bien sea
de forma diagonal (los ms comunes) o de
forma horizontal o vertical. La velocidad de
desplazamiento es variable, dependiendo del
patrn que se trate. Se denomina mide en
trminos de c y considera el numero de Evolucin:
generaciones que necesita evolucionar un
determinado patrn para desplazarse una celda
[celdas/generaciones]. La mxima velocidad a
la que se podra desplazarse uno de estos
patrones seria la de una celda por generacin
(de ah el uso de c como analoga de la
velocidad de la luz). Por tanto la velocidad de
una astronave se puede se denota como c/x y
puede calcularse mediante el uso de esta Existen muchos otros patrones que se
frmula: desplazan por el tablero, algunos de ellos muy
grandes y complejos, formados por estructuras
llamadas tagalong y pushalong. Un
tagalong no es una astronave por si misma, si
no que es un patrn que puede ser unido a la parte
posterior de la nave y se ve arrastrado por ella,
formando un patrn de astronave mayor. De
Algunos de los patrones astronaves forma similar, un pushalong puede ser aadido
ms comunes que suelen aparecer en el juego de a la parte delantera de una astronave para
la vida son: aumentar su tamao.

-Deslizador (Glider): es el patrn astronave ms


pequeo que se conoce as como el ms comn.
2.3 Osciladores
Se desplaza a lo largo del tablero de forma
diagonal y tiene una velocidad de c/4.
Un oscilador es un patrn que
evoluciona cambiando de forma y que regresa a
su forma original (y en su posicin original)
despus de un nmero finito de generaciones. Se
pueden clasificar segn su tamao, su inmunidad
ante evoluciones externa, su periodo... Los ms
comunes son los siguientes:
Evolucin: -Parpadeador (Blinker): es el ms pequeo y
comun de los osciladores. Su periodo es de 2
generaciones:

Como curiosidad, el deslizador ha sido


acuado por los hackers como emblema de su
colectivo.
- La baliza (Beacon): es otro oscilador muy rastro de escombros inmortales (locomotoras) e
comn de periodo 2. incluso existen patrones de astronaves que
durante su avance emiten otras astronaves de
menor tamao (rastrillos) o dejan tras de si un
rastro de pistolas (criaderos).

El ms conocido de estos patrones de


crecimiento indefinido, y el primero que se
encontr, es el llamado la pistola de Gosper,
-EL sapo (toad): de periodo 2. nombre que recibe de su descubridor Bill
Gosper

-Plsar (Pulsar): es el oscilador ms frecuente Como su nombre indica se trata de un


de periodo igual a 3: patrn oscilador de periodo 20 de tipo pistola,
que emite un deslizador por ciclo.

2.5 Otros patrones de inters

Adems de las ya comentados existen


infinidad de patrones con comportamientos
diversos y sorprendentes, cabe destacar la
Se han diseado patrones que oscilan en existencia de patrones reflectores, que tras
casi cualquier periodo, exceptuando 19, 23, 31, recibir un impacto de una astronave generan otra
38, 41, 43, y 53, periodos para los cuales a pesar igual en una direccin distinta, volviendo tras
de su posible existencia no se han encontrado ello a su estado inicial, los bloques deslizantes,
poblaciones iniciales ni han observados. Otros que son inmortales de tipo bloque que se
osciladores conocidos son la estrella, la cruz y el desplazan por el tablero en tras recibir el impacto
beso (de periodo 3), el relog, el octgono y la de dos deslizadores de forma concreta hacia la
fumarola (de periodo 4), la galaxia (periodo 8) y fuente de los planeadores y en direccin contraria
el pentadecathlon (de periodo 15). tras recibir el impacto de tres deslizadores, etc.

2.4 Patrones de crecimiento


indefinido 3 ANALOGAS CON EL LGEBRA
BOOLEANA.
Los patrones de crecimiento indefinido
se caracterizan, por aumentar la poblacin Como ya se ha comentado con
generacin tras generacin, determinando un antelacin, tericamente el juego de la vida
crecimiento infinito, contradiciendo las equivale a una mquina universal de Turing, por
conjeturas iniciales de Conway. Algunos tanto podra usarse para realizar clculos
simplemente crecen de forma de forma lineal o bolanos, y este es otro de los atractivos que
exponencial a partir de patrones simples y presenta. As mediante el uso de algoritmos, y
mnimos, otros simplemente son osciladores que aprovechando los comportamientos interesantes
durante su periodo emiten astronaves de objetos al ser golpeados por deslizadores se
(pistolas), o astronaves que tras de si dejan un han conseguido crear patrones que corresponden
a puertas lgicas de deslizadores AND, OR y
NOT, multiplicadores de astronaves, contadores Algunas versiones de el juego de la vida utilizan
naturales, codificadores, generadores de algoritmos genticos que actan haciendo variar
osciladores de frecuencia variable en funcin de las reglas del juego en determinadas clulas o
una entrada de deslizadores, memorias no zonas del tablero que son elegidas de forma
voltiles mediante el uso de bloques deslizantes aleatoria de tal modo que se produzcan
(las diversas posiciones que sitan al bloque en mutaciones inesperadas en los patrones. Estas
el tablero tras recibir impactos de planeadores versiones del juego guardan aun una mayor
pueden usarse para codificar unos y ceros similitud con el desarrollo y cambios producidos
lgicos) e incluso se ha usado el juego de la vida por ejemplo en los seres vivos y en sus
para recrear el propio juego a una escala mucho sociedades, guardando las distancias y como
mayor y respondiendo a una escala de tiempo analoga podra considerarse una versin mas
ms lenta, todo esto basndose tan solo en fijar Darwiniana, en el cual, si una mutacin resulta
un determinado estado inicial. beneficiosa contribuir a la supervivencia de el
mismo durante un mayor nmero de
generaciones.
4 PROGRAMACIN Y
ALGORITMOS 4.1 Variaciones de el juego de la
vida
Como se puede deducir de sus reglas, el
juego de la vida no implica de una programacin Respecto a la versin original que
compleja para hacerlo funcional, simplemente se responde a las reglas denominadas 2,3/3 existen
podra considerar que el juego se desarrolla en un variaciones que resultan en diversos
array bidimensional (tpicamente son usados dos comportamientos. Algunos ejemplos de ello son:
arrays: uno para la generacin actual y otro para
calcular la generacin sucesora), tan slo hay que 5,1/3,4,6 "Larga vida":
tener en cuenta algunas consideraciones como la comportamiento estable, casi todo son
imposibilidad de disear un tablero infinito (al osciladores.
tener que trabajar con una memoria finita, 2,3,5,6,7,8/3,6,7,8 Mancha de tinta:
obviamente), por tanto nuestro tablero tendr crecimiento rpido que acaba
unos limites definidos y el comportamiento de las estabilizndose.
clulas al atravesarlos podr considerarse de /3 Sparks: patrones pequeos que
diversas formas. La ms sencilla de ellas es aparecen y desaparecen rpidamente.
considerar que todas las clulas que se encuentren 5,6,7,8/3,5,6,7,8 Diamantes
fuera de esos lmites definidos pasan a catstrofes: comportamiento catico.
considerarse formas clulas muertas. Otra opcin 1,3,5,7/1,3,5,7 Breeder: Crece
algo sera definir esos vectores de forma cclica o rpidamente, todo son rplicas.
toroidal, de tal forma que cuando el crecimiento 1,3,5,8/3,5,7 Amebas:
de una poblacin atraviesa un lmite, sigue comportamiento catico.
interactuando en el al aparecer por el lmite 2,4,5/3,6,8 Muerte: Surgen
opuesto. Otras consideraciones que pueden tener comnmente locomotoras y naves.
en cuenta son aquellas destinadas al ahorro de Estable
recursos, por ejemplo si una clula no ha 3,4/3,4 "Vida 3,4": Crece.
cambiado de estado respecto a la generacin
anterior y tampoco lo ha hecho ninguna de sus
vecinas podemos afirmar que tampoco cambiar 4.2 Algoritmos a largo plazo
su estado en la generacin siguiente, por tanto
obtenemos grandes zonas del tablero que no es La dificultad existe cuando se desea usar
necesario actualizar sus valores. algoritmos que determinen como ha de ser la
poblacin inicial para que trascurridas un numero
determinado de generaciones podamos
llegar a un determinado estado deseado, algo que
a la simple vista de un operador humano no tiene
que porque ser trivial y es ah donde es ms til
la utilizacin de algoritmos, bien sean algoritmos
paso a paso como con algoritmos a largo plazo.
Entre stos ltimos destaca el un algoritmo
conocido como Hashlife, destinado a la
bsqueda de repeticiones y redundancias tanto
espaciales como temporales en los autmatas
celulares en funcin los parmetros que lo
definen. Este algoritmo es altamente eficaz para
el juego de la vida, ya que basa su funcionamiento
en la bsqueda y comportamiento de patrones
altamente regulares. Su funcionamiento se basa
en el uso de tablas Hash, como su nombre ya
sugiere. El uso de este tipo de tablas, (a pesar de
resultar algo ms lentas en promedio que el uso de
otro tipo de estructuras como pueden ser los
rboles binarios, que guardan la informacin de
una manera ms ordenada) consiguen optimizar
los recursos al realizar de una manera eficiente las
bsquedas, sobre todo cuando dichas tablas
almacenan grandes cantidades de informacin.
El algoritmo Hashlife desarrollado por Bill
Gosper en la dcada de 1980 y hoy en da sigue
siendo uno de los algoritmos ms populares tanto
en el juego de la vida como en otros autmatas
celulares.
4. CDIGO EN LENGUAJE PYTHON
?
001 #!/usr/bin/env python
# -*- coding: utf-8 -*-
002
003
# ---------------------------------------------------------------------
004 # Programa: EL juego de la vida.
005
006 # Mdulos
007 from gasp import *
008 import time, os, random
009
010 # CONSTANTES
011 width = 640
012 height = 480
013
014 # Clases
015 # ---------------------------------------------------------------------
016
017 class Juego:
018 def __init__(self, opcion=1, archivo="mapa.txt", fil=10, col=10):
019 if opcion == 2:
020 self.mapa = leerMapa(archivo)
021 else:
self.mapa = range(fil)
022
for i in range(fil):
023 self.mapa[i] = range(col)
024
025 for f in range(fil):
026 for c in range(col):
027 self.mapa[f]1 = random.randint(0, 1)
028
029 self.filas = len(self.mapa)
030 self.columnas = len(self.mapa[0])
031
032 def __str__(self):
033 mapa = ""
034 for f in range(self.filas):
035 for c in range(self.columnas):
036 if self.mapa[f]1 == 0:
037 mapa += ". "
038 if self.mapa[f]1 == 1:
039 mapa += "* "
mapa += "\n"
040
return mapa
041
042 def analizarVecinos(self, fil, col):
043 vecinos = 0
044 if fil-1 >= 0 and col-1 >= 0:
045 if self.mapa[fil-1][col-1] == 1:
046 vecinos += 1
047 if fil-1 >= 0:
048 if self.mapa[fil-1][col] == 1:
049 vecinos += 1
050 if fil-1 >= 0 and col+1 <= self.columnas-1:
051 if self.mapa[fil-1][col+1] == 1:
052 vecinos += 1
053 if col-1 >= 0:
054 if self.mapa[fil][col-1] == 1:
055 vecinos += 1
if col+1 <= self.columnas-1:
056
if self.mapa[fil][col+1] == 1:
057 vecinos += 1
058 if fil+1 <= self.filas-1 and col-1 >= 0:
059 if self.mapa[fil+1][col-1] == 1:
060 vecinos += 1
061 if fil+1 <= self.filas-1:
062 if self.mapa[fil+1][col] == 1:
063 vecinos += 1
064 if fil+1 <= self.filas-1 and col+1 <= self.columnas-1:
065 if self.mapa[fil+1][col+1] == 1:
vecinos += 1
066
return vecinos
067
068 def ciclo(self):
069 nueva_conf = []
070 for f in range(self.filas):
071 columna = []
072 for c in range(self.columnas):
073 vecinos = self.analizarVecinos(f, c)
074 if self.mapa[f]1 == 0:
075 if vecinos == 3:
076 columna.append(1)
077 else:
078 columna.append(0)
079 if self.mapa[f]1 == 1:
080 if vecinos == 2 or vecinos == 3:
081 columna.append(1)
else:
082
columna.append(0)
083 nueva_conf.append(columna)
084
085 self.mapa = nueva_conf
086
087 def dibujar(self):
088 dist_lv = width/self.columnas
089 dist_lh = height/self.filas
090 for i in range(self.columnas):
091 Line((dist_lv*i, 0), (dist_lv*i, height))
092 for n in range(self.filas):
093 Line((0, dist_lh*n), (width, dist_lh*n))
094
095 for f in range(self.filas):
096 y = height-dist_lh - ((dist_lh)*f)+(dist_lh/2)
097 for c in range(self.columnas):
098 x = ((dist_lv)*c)+(dist_lv/2)
099 if self.mapa[f]1 == 1:
Circle((x, y), ((dist_lh/2)-((dist_lh/2)*0.2)))
100
101
# ---------------------------------------------------------------------
102
103
# Funciones
104 # ---------------------------------------------------------------------
105
106 # Quita el ultimo caracter de una lista.
107 def quitarUltimo(lista):
108 for i in range(len(lista)):
109 lista[i] = lista[i][:-1]
110 return lista
111
112 # Covierte una cadena en una lista.
113 def listarCadena(cadena):
114 lista = []
115 for i in range(len(cadena)):
116 if cadena[i] == ".":
117 lista.append(0)
118 if cadena[i] == "*":
lista.append(1)
119
return lista
120
121 # Lee un archivo de texto y lo convierte en una lista.
122 def leerMapa(archivo):
123 mapa = open(archivo, "r")
124 mapa = mapa.readlines()
125 mapa = quitarUltimo(mapa)
126 for i in range(len(mapa)):
mapa[i] = listarCadena(mapa[i])
127
return mapa
128
129 # ---------------------------------------------------------------------
130
131 def main():
132 print "Indica si quieres cargar una configuracin o utilizar una aleatoria."
133 print "1. Aleatoria"
134 print "2. Cargar configuracin"
135 opcion = input("Introduce el nmero de la opcin elegida: ")
136 if opcion == 1:
137 filas = input("Introduce el nmero de filas: ")
138 columnas = input("Introduce el nmero de columnas: ")
139 archivo = ""
140 if opcion == 2:
141 archivo = raw_input("Intruduce la ruta del archivo: ")
142 filas = 0
143 columnas = 0
144
begin_graphics(width=width, height=height, title="Juego de la Vida")
145
juego = Juego(opcion=opcion, archivo=archivo, fil=filas, col=columnas)
146
while True:
147 juego.dibujar()
148 juego.ciclo()
149 time.sleep(0.35)
150 clear_screen()
151 update_when('next_tick')
152 end_graphics()
153 return 0
154
155 if __name__ == '__main__':
156 main()

6. REFERENCIAS

[1] Gadner.M. Scientific American (1970).

[2] Stephen A. Silver. The Life Lexicon: (http://www.argentum.freeserve.co.uk/life.htm)

[3] Descartes 2D: taller de matemticas: (http://descartes.cnice.mec.es/materiales_didacti


cos/juego_vida/index.htm)

[4](http://es.wikipedia.org/wiki/Juego_de_la_vi da)

[5] Aula de Matemticas: (http://www.aulademate.com/contentid- 313.html)

[6] John Conways Game of Life (http://www.bitstorm.org/gameoflife/)


[7]A new kind of science (Autmatas celulares): (http://www.wolframscience.com/nksonline/toc. html)

También podría gustarte