El Juego de la Vida en Python

In [2]:
import matplotlib.image as image
import numpy as np

def juegoDeLaVida():
    print('Hi')
juegoDeLaVida()
Hi

El juego de la vida fue diseñado por el matemático John Horton Conway en 1970.

A lo largo de las publicaciones ire desarrollando el juego de la vida, ya que me parece un ejercio muy bueno para poder aplicar muchas técnicas de programación, también tengo en mente poder generar algunos patrones que luego los generaremos o exportaremos en un gif(usando PIL o usando matplotlib, eso lo veré en su momento).

Espero que les gusten estas series de entradas que ire posteando.

Dibujar Cuadrados en un Gif con Python

In [16]:
import matplotlib.image as image
import numpy as np
from PIL import Image

color = [0,0,0]
filas, columnas = 200, 200

n = 8
nI = filas/n
nJ = columnas/n

img = np.zeros((filas, columnas, 3))

def pintar(img,x0,x1,y0,y1,color):
    for x in range(int(x0),int(x1)):
        for y in range(int(y0),int(y1)):
            img[x][y] = np.array(color)

imagenes = []

for i in range(4):
    if i%2 == 1:
        tColor = [0,0,0]
    else:
        tColor = [1,1,1]
    pintar(img,(i+1)*nI,(n-1-i)*nI,(i+1)*nI,(n-1-i)*nI,tColor)
    imagenes.append(Image.fromarray(np.uint8(img*255)))

im = Image.fromarray(np.uint8(img*255))
imagenes[0].save('gif.gif',
               save_all=True,
               append_images=imagenes[1:],
               optimize=False,
               duration=500,
               loop=0)
im
Out[16]:

Dibujar un table de ajedrez cuadro por cuadro en un GIF con Python

In [7]:
import matplotlib.image as image
import numpy as np
from PIL import Image

color = [0,0,0]
filas, columnas = 200, 200

n = 8
nI = filas/n
nJ = columnas/n

img = np.ones((filas, columnas, 3))

def pintar(img,x0,x1,y0,y1,color):
    for x in range(int(x0),int(x1)):
        for y in range(int(y0),int(y1)):
            img[x][y] = np.array(color)

imagenes = []
for i in range(n):
    for j in range(n):
        if (i+j)%2==1:
            pintar(img,i*nI,(i+1)*nI,j*nJ,(j+1)*nJ,color)
            imagenes.append(Image.fromarray(np.uint8(img*255)))

im = Image.fromarray(np.uint8(img*255))
imagenes[0].save('gif/ajedrez.gif',
               save_all=True,
               append_images=imagenes[1:],
               optimize=False,
               duration=500,
               loop=0)
im
Out[7]:

Mostrar imagenes de MNIST usando Keras, Tensorflow en Python

In [3]:
import matplotlib.pyplot as plt
import tensorflow as tf
from tensorflow import keras
import numpy as np

fashion_mnist = keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()

plt.figure()
plt.imshow(train_images[123])
plt.savefig('img/imagen1.png')
plt.show()

Si queremos visualizar mas de una imagen podemos usar la siguiente funcion

In [4]:
import math
def ver(imagenes,lista):
    plt.figure(figsize=(5,5))
    n = math.ceil(np.sqrt(len(lista)))
    for i in range(n*n):
        if i >= len(lista):
            break
        plt.subplot(n,n,i+1)
        plt.xticks([])
        plt.yticks([])
        plt.imshow(imagenes[lista[i]])
    plt.savefig('img/imagen2.png')
    plt.show()
ver(train_images,[1,2,3,45])

Generar un tablero de Ajedrez en Python

In [61]:
import matplotlib.image as image
import numpy as np
from PIL import Image

color = [0,0,0]
filas, columnas = 200, 200

n = 8
nI = filas/n
nJ = columnas/n

img = np.ones((filas, columnas, 3))

def pintar(img,x0,x1,y0,y1,color):
    for x in range(int(x0),int(x1)):
        for y in range(int(y0),int(y1)):
            img[x][y] = np.array(color)

for i in range(n):
    for j in range(n):
        if (i+j)%2==1:
            pintar(img,i*nI,(i+1)*nI,j*nJ,(j+1)*nJ,color)

im = Image.fromarray(np.uint8(img*255))
im.save('img/imagen.png')
im
Out[61]: