<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">El 22 de mayo de 2015, 17:45, Fernando Garcia <span dir="ltr"><<a href="mailto:riello57@gmail.com" target="_blank">riello57@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><p dir="ltr">En efecto, leí en un libro una descripción del Juego de la vida y quise intentar ponerlo en marcha en Python. <br>
Gracias por los enlaces, los voy a consultar </p></blockquote><div>También te puede interesar la implementación con numpy que hicieron los de pybonacci de este juego:<br><a href="http://pybonacci.org/2012/11/30/juego-de-la-vida-de-conway-con-python-usando-numpy/">http://pybonacci.org/2012/11/30/juego-de-la-vida-de-conway-con-python-usando-numpy/</a><br><br></div><div>Y mi propia implementación:<br><a href="https://gist.github.com/chemacortes/6257951#file-life-py">https://gist.github.com/chemacortes/6257951#file-life-py</a><br></div><div><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=""><div class="h5">
<div class="gmail_quote">El 22/05/2015 17:41, "Oscar Carballal" <<a href="mailto:oscar.carballal@gmail.com" target="_blank">oscar.carballal@gmail.com</a>> escribió:<br type="attribution"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">[clippy aparece en tu pantalla] Parece que esta usted intentando crear un juego de la vida (Game of Life), tal vez estos articulos le sean de ayuda:<div><br></div><div><a href="https://jakevdp.github.io/blog/2013/08/07/conways-game-of-life/" target="_blank">https://jakevdp.github.io/blog/2013/08/07/conways-game-of-life/</a></div><div><a href="http://usingpython.com/dl/GameOfLife.py" target="_blank">http://usingpython.com/dl/GameOfLife.py</a></div><div><a href="http://stanford.edu/~cpiech/cs221/handouts/pythonTutorial.html" target="_blank">http://stanford.edu/~cpiech/cs221/handouts/pythonTutorial.html</a></div><div><div><br></div><div>Bromas aparte, para hacer la parte B seguramente te sea util operar con arrays bidimensionales (basicamente arrays de arrays). Echale un vistazo a los enlaces que te mando, no es demasiado complicado. Para conectar ambas partes puedes llamar a las funciones de tu programa en Tk desde tu operaciones en la logica del juego.</div></div><div><br></div><div>Intentalo estudiando el codigo de esos ejemplos :)</div></div><div class="gmail_extra"><br clear="all"><div><div><div dir="ltr">Regards,<br>Oscar<br><br>--<br>Oscar Carballal Prego - Senior Software Developer<br><a href="http://oscarcp.com" target="_blank">http://oscarcp.com</a> | @pizte<br></div></div></div>
<br><div class="gmail_quote">2015-05-22 16:27 GMT+01:00 Fernando Garcia <span dir="ltr"><<a href="mailto:riello57@gmail.com" target="_blank">riello57@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:"trebuchet ms",sans-serif;font-size:large;color:rgb(103,78,167)">Quiero hacer un "juego" (en realidad no es un juego, mas bien un experimento) que consiste en:</div><div style="font-family:"trebuchet ms",sans-serif;font-size:large;color:rgb(103,78,167)">a)-Sobre un tablero ajedrezado, marcamos cada cuadrado de un color, blanco o negro pero aleatoriamente.</div><div style="font-family:"trebuchet ms",sans-serif;font-size:large;color:rgb(103,78,167)">b)-Cada casilla reacciona según las casillas de su entorno. Si es blanca y esta rodeada por dos o tres blancas, sigue blanca. Si no, cambia a negra. Si es negra y esta rodeada por dos blancas, cambia a blanca. Si no, sigue negra.</div><div style="font-family:"trebuchet ms",sans-serif;font-size:large;color:rgb(103,78,167)"><br></div><div style="font-family:"trebuchet ms",sans-serif;font-size:large;color:rgb(103,78,167)">tengo hecha la parte a), con el código que pongo a continuación, pero no se como abordar la parte b). ¿Alguna ayuda?.</div><div style="font-family:"trebuchet ms",sans-serif;font-size:large;color:rgb(103,78,167)"><br></div><div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">def Universo(ventana,ancho,alto):</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> Botones(ventana,ancho,alto)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> espacio=Canvas(ventana, width=ancho, height=alto)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> espacio.pack()</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> tablero(espacio,ancho,alto)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"><br></font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">def tablero(espacio,ancho,alto):</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> x=0</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> y=0</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> while y<alto-15:</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> while x<ancho-15:</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> z=random.randint(0,1)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> if z==0:</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> cuadradoVivo(espacio,x,y)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> if z==1:</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> cuadradoMuerto(espacio,x,y)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> x=x+15</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> x=0</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> y=y+15</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"><br></font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">def cuadradoVivo(espacio,x,y):</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> espacio.create_rectangle(x,y,x+15,y+15,fill='green')</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"><br></font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">def cuadradoMuerto(espacio,x,y):</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> espacio.create_rectangle(x,y,x+15,y+15,fill='red')</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"><br></font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">def Botones(ventana,ancho,alto):</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> def botonSalir(ventana):</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> Button(ventana, text="SALIR", command=root.destroy,</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> cursor='hand2').pack(side=LEFT)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> def botonContinuar(ventana):</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> Button(ventana, text="CONTINUAR",</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> cursor='hand2').pack(side=LEFT)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> def botonPausar(ventana):</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> Button(ventana, text="PAUSAR",</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> cursor='hand2').pack(side=LEFT)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> def botonEmpezar(ventana):</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> Button(ventana, text="EMPEZAR",</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> cursor='hand2').pack(side=LEFT)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> frameBotones=Frame(ventana)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> botonEmpezar(frameBotones)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> botonPausar(frameBotones)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> botonContinuar(frameBotones)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> botonSalir(frameBotones)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"> frameBotones.pack(fill=BOTH)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"><br></font></div><div><br></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"><br></font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">#-*-*-*-*-*-*-*-*-*-*-*-*-</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">#*/*/*/*/*INIT*/*/*/*/*</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">#-*-*-*-*-*-*-*-*-*-*-*-*-</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"><br></font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">root=Tk()</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">ancho,alto=root.maxsize()</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">Universo(root, ancho, alto)</font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"><br></font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7"><br></font></div><div><font face="trebuchet ms, sans-serif" size="4" color="#674ea7">root.mainloop()</font></div><div style="color:rgb(103,78,167);font-family:"trebuchet ms",sans-serif;font-size:large"><br></div><div style="color:rgb(103,78,167);font-family:"trebuchet ms",sans-serif;font-size:large"><br></div><div style="color:rgb(103,78,167);font-family:"trebuchet ms",sans-serif;font-size:large">Aclaro que el único botón que tengo funcionando es el de SALIR. </div><div style="color:rgb(103,78,167);font-family:"trebuchet ms",sans-serif;font-size:large">Gracias por la ayuda.</div></div></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org" target="_blank">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div>
</div></div><br>_______________________________________________<br>
Python-es mailing list<br>
<a href="mailto:Python-es@python.org">Python-es@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-es" target="_blank">https://mail.python.org/mailman/listinfo/python-es</a><br>
FAQ: <a href="http://python-es-faq.wikidot.com/" target="_blank">http://python-es-faq.wikidot.com/</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">Hyperreals *R "Quarks, bits y otras criaturas infinitesimales": <a href="http://ch3m4.org/blog" target="_blank">http://ch3m4.org/blog</a><br>Buscador Python Hispano: <a href="http://ch3m4.org/python-es" target="_blank">http://ch3m4.org/python-es</a></div>
</div></div>