[Python-es] Tablero ajedrezado

Oscar Carballal oscar.carballal en gmail.com
Vie Mayo 22 17:40:45 CEST 2015


[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:

https://jakevdp.github.io/blog/2013/08/07/conways-game-of-life/
http://usingpython.com/dl/GameOfLife.py
http://stanford.edu/~cpiech/cs221/handouts/pythonTutorial.html

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.

Intentalo estudiando el codigo de esos ejemplos :)

Regards,
Oscar

--
Oscar Carballal Prego - Senior Software Developer
http://oscarcp.com | @pizte

2015-05-22 16:27 GMT+01:00 Fernando Garcia <riello57 en gmail.com>:

> Quiero hacer un "juego" (en realidad no es un juego, mas bien un
> experimento) que consiste en:
> a)-Sobre un tablero ajedrezado, marcamos cada cuadrado de un color, blanco
> o negro  pero aleatoriamente.
> 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.
>
> tengo hecha la parte a), con el código que pongo a continuación, pero no
> se como abordar la parte b). ¿Alguna ayuda?.
>
> def Universo(ventana,ancho,alto):
>     Botones(ventana,ancho,alto)
>     espacio=Canvas(ventana, width=ancho, height=alto)
>     espacio.pack()
>     tablero(espacio,ancho,alto)
>
> def tablero(espacio,ancho,alto):
>     x=0
>     y=0
>     while y<alto-15:
>         while x<ancho-15:
>             z=random.randint(0,1)
>             if z==0:
>                 cuadradoVivo(espacio,x,y)
>             if z==1:
>                 cuadradoMuerto(espacio,x,y)
>             x=x+15
>         x=0
>         y=y+15
>
> def cuadradoVivo(espacio,x,y):
>     espacio.create_rectangle(x,y,x+15,y+15,fill='green')
>
> def cuadradoMuerto(espacio,x,y):
>     espacio.create_rectangle(x,y,x+15,y+15,fill='red')
>
> def Botones(ventana,ancho,alto):
>     def botonSalir(ventana):
>         Button(ventana, text="SALIR", command=root.destroy,
>                cursor='hand2').pack(side=LEFT)
>     def botonContinuar(ventana):
>         Button(ventana, text="CONTINUAR",
>                cursor='hand2').pack(side=LEFT)
>     def botonPausar(ventana):
>         Button(ventana, text="PAUSAR",
>                cursor='hand2').pack(side=LEFT)
>     def botonEmpezar(ventana):
>         Button(ventana, text="EMPEZAR",
>                cursor='hand2').pack(side=LEFT)
>     frameBotones=Frame(ventana)
>     botonEmpezar(frameBotones)
>     botonPausar(frameBotones)
>     botonContinuar(frameBotones)
>     botonSalir(frameBotones)
>     frameBotones.pack(fill=BOTH)
>
>
>
> #-*-*-*-*-*-*-*-*-*-*-*-*-
> #*/*/*/*/*INIT*/*/*/*/*
> #-*-*-*-*-*-*-*-*-*-*-*-*-
>
> root=Tk()
> ancho,alto=root.maxsize()
> Universo(root, ancho, alto)
>
>
> root.mainloop()
>
>
> Aclaro que el único botón que tengo funcionando es el de SALIR.
> Gracias por la ayuda.
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20150522/68d7bf17/attachment.html>


Más información sobre la lista de distribución Python-es