| Simulación del juego de la vida de Conway | |
|
|
Autor | Mensaje |
---|
elPatrixF Soporte
Reputación : 327 Mensajes enviados : 1296 Edad : 32 Premios :
| Tema: Simulación del juego de la vida de Conway Jue Feb 09, 2012 5:14 pm | |
| Este es un proyecto un tanto complejo, pero es una implementación completa del juego de la vida de conway. Algunos lo deben conocer por el emblema hacker. El juego de la vida es el mejor ejemplo de un autómata celular, diseñado por el matemático británico John Horton Conway en 1970.
El juego de la vida es en realidad un juego de cero jugadores, lo que quiere decir que su evolución está determinada por el estado inicial y no necesita ninguna entrada de datos posterior. El "tablero de juego" es una malla formada por cuadrados ("células") que se extiende por el infinito en todas las direcciones. Cada célula tiene 8 células vecinas, que son las que están próximas a ella, incluso en las diagonales. Las células tienen dos estados: están "vivas" o "muertas" (o "encendidas" y "apagadas"). El estado de la malla evoluciona a lo largo de unidades de tiempo discretas (se podría decir que por turnos). El estado de todas las células se tiene en cuenta para calcular el estado de las mismas al turno siguiente. Todas las células se actualizan simultáneamente. Las transiciones dependen del número de células vecinas vivas:
- Una célula muerta con exactamente 3 células vecinas vivas "nace" (al turno siguiente estará viva).
- Una célula viva con 2 ó 3 células vecinas vivas sigue viva, en otro caso muere o permanece muerta (por "soledad" o "superpoblación").
Más info en [Tienes que estar registrado y conectado para ver este vínculo]
Esta implementación está hecha en un tablero ( Surface) de 160x90. Está todo bien comentado para que cualquiera pueda usarlo. Usa el mersenne twister para el "espolvoreo", totalmente al pedo . Para una explicación rápida, se puede editar con el mouse (Clic izquierdo pinta, clic derecho borra), se activan las generaciones con la barra espaciadora, y se cambia de "reglas" con las teclas 1-4. Este es un ejemplo de un diseño de autómata celular. Un generador de gliders. [Tienes que estar registrado y conectado para ver esa imagen]Y un glider es esto. Un cosito que va viajando por el plano [Tienes que estar registrado y conectado para ver esa imagen]Como corolario, tiene una de las funciones más largas que he tenido que usar en un juego, (Todo sea por ahorrar eventos) siendo ésta, GetRGB(RedAt( "s", LoopIndex("a"), LoopIndex("b")), RedAt( "s", LoopIndex("a")-1, LoopIndex("b")-1) mod 2+RedAt( "s", LoopIndex("a"), LoopIndex("b")-1) mod 2+RedAt( "s", LoopIndex("a")+1, LoopIndex("b")-1) mod 2+RedAt( "s", LoopIndex("a")-1, LoopIndex("b")) mod 2+RedAt( "s", LoopIndex("a")+1, LoopIndex("b")) mod 2+RedAt( "s", LoopIndex("a")-1, LoopIndex("b")+1) mod 2+RedAt( "s", LoopIndex("a"), LoopIndex("b")+1) mod 2+RedAt( "s", LoopIndex("a")+1, LoopIndex("b")+1) mod 2, 0).
Última edición por elPatrixF el Mar Jun 12, 2012 1:49 pm, editado 1 vez | |
|
| |
elPatrixF Soporte
Reputación : 327 Mensajes enviados : 1296 Edad : 32 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Vie Feb 10, 2012 7:11 pm | |
| ¿Alguien lo probó o a nadie le interesa? | |
|
| |
ErichZann Moderador
Reputación : 334 Mensajes enviados : 1414 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Vie Feb 10, 2012 8:43 pm | |
| Es interesante y me gusta, especialmente si dibujo un cuadrado con "life 34", yo estaba intentando algo en esa linea, la idea era buena, pero se complicó.... si algún día lo termíno.... | |
|
| |
Zonacas Super-Moderador
Reputación : 558 Mensajes enviados : 2871 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Sáb Feb 11, 2012 6:50 am | |
| | |
|
| |
elpupas7 Administrador
Reputación : 1243 Mensajes enviados : 3982 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Mar Feb 14, 2012 4:01 am | |
| Se agradece el .mfa. Lo había visto en multiples lenguajes, pero no para mmf. Ahora con esto, cada uno puede mejorar la interfaz e implementar otras opciones... Siempre he visto este "juego" como un "ejercicio de programación" y algo "bonito de ver". +R
| |
|
| |
elPatrixF Soporte
Reputación : 327 Mensajes enviados : 1296 Edad : 32 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Mar Feb 14, 2012 1:53 pm | |
| Sep, es como un autómata celular Hay unos cuantos diseños bonitos circulando por internet. En la wikipedia muestran unos cuantos osciladores, naves espaciales, y chiches curiosos que se pueden hacer en mi simulador . El único problema es que la implementación base es una máquina de carcomer ciclos de cpu. Ya con una cuadrícula de 160x90 en una computadora estándar las generaciones se hacen a 30-40 cuadros por segundo. Imaginarse una cuadrícula de 320x200, y ni hablar de 640x480 Para cuadrículas grandes conviene usar el algoritmo hashlife, pero todavía no lo leí bien así que no se como implementarlo Estaba en mis planes crear un juego al estilo del "Life genesis" de microsoft, donde habían dos colores. El único dilema es que hay que guardar información adicional en la cuadrícula Ya había inventado algo parecido, pero con objetos activos y un arreglo. - Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]
Se los dejo acá para que chusmeen | |
|
| |
Zonacas Super-Moderador
Reputación : 558 Mensajes enviados : 2871 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Miér Feb 15, 2012 5:16 am | |
| Chusmeando.... Cuanta formula estaría bien que cuando sitúas los bloques azules te deje colocar los bloques rojos antes de que empiecen a evolucionar para que comiencen los dos a evolucionar a la vez Se ve muy interesante PD:Truco, he conseguido posicionar células rojas y azules y que comiencen a la vez, coloquen por ejemplo un fila de celulas azules (click izquierdo) y sin soltar desplácense al borde o fuera del cuadro de dibujo, desde allí y sin soltar el botón del ratón hagan click derecho para cambiar el color a rojo, ahora ya pueden soltar el botón izquierdo del ratón, vayan al lado contrario y pinten otra fila, suelten el botón y verán la batalla de las células | |
|
| |
elPatrixF Soporte
Reputación : 327 Mensajes enviados : 1296 Edad : 32 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Miér Feb 15, 2012 3:05 pm | |
| Mantené pulsada la tecla CTRL para que la simulación se pause- Me olvidé de decirlo. | |
|
| |
Zonacas Super-Moderador
Reputación : 558 Mensajes enviados : 2871 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Jue Feb 16, 2012 5:11 am | |
| Ah vaya así mucho mejor | |
|
| |
mataguiris Experto
Reputación : 63 Mensajes enviados : 498 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Miér Mayo 27, 2015 6:49 am | |
| Muy bueno, estuve viendo el mfa y no lo entiendo muy bien he estado probando en Cosntruct2 y me estaba volviendo loco con arrays, entonces alguien ha conseguido hacerlo, aunque de una manera distinta, comprobando las distancias entre células muerta y viva, y bueno, lo ha conseguido también. Cuando llegue a casa subo el ejemplo de Construct2, aunque el rendimiento flaquea mucho cuando hay muchas células vivas, en cambio el mismo ejemplo con ConstructClassic tiene un rendimiento bastante más aceptable. Abrí un hilo sin saber que existía este, voy a pedir que cierren el otro. | |
|
| |
imed Novato
Reputación : 0 Mensajes enviados : 24 Edad : 33 Premios :
| Tema: Re: Simulación del juego de la vida de Conway Jue Sep 03, 2015 11:38 pm | |
| Me encantan estos post, siempre aprendo algo nuevo. Es realmente muy interesante todo este tema... hora de investigar! | |
|
| |
Contenido patrocinado
| Tema: Re: Simulación del juego de la vida de Conway | |
| |
|
| |
| Simulación del juego de la vida de Conway | |
|