# -*- coding: utf-8 -*- # Bibliotecas import os, time, random def cargartablero(filas,columnas): tablero=[] columna = [0]*columnas celulas=0 #cargamos casilleros vacios for i in range(filas): columna = [0]* columnas tablero.append(columna) #cargamos las celulas for x in range(filas): for y in range(columnas): celula = random.randint(0,random.randint(0,1)) tablero[x][y] = celula return tablero def dibujartablero(tablero): filas=len(tablero) columnas=len(tablero[1]) for x in range(filas): for y in range(columnas): if tablero[x][y]==0: print ".", else: print "o", print "\n", def contarvecinos(tablero,x,y): vecinos=0 filas=len(tablero) columnas=len(tablero[1]) if x < filas-1 and tablero[x+1][y]==1: vecinos = vecinos + 1 if x > 0 and tablero[x-1][y]==1: vecinos = vecinos + 1 if y < columnas-1 and tablero[x][y+1]==1: vecinos = vecinos + 1 if y > 0 and tablero[x][y-1]==1: vecinos = vecinos + 1 if x < filas-1 and y < columnas-1 and tablero[x+1][y+1]==1: vecinos = vecinos + 1 if x > 0 and y > 0 and tablero[x-1][y-1]==1: vecinos = vecinos + 1 if x > 0 and y < columnas-1 and tablero[x-1][y+1]==1: vecinos = vecinos + 1 if x < filas-1 and y > 0 and tablero[x+1][y-1]==1: vecinos = vecinos + 1 return vecinos def iteracion(tablero): filas=len(tablero) columnas=len(tablero[1]) vecinos=0 for x in range(filas): for y in range(columnas): if tablero[x][y] == 1: vecinos = contarvecinos(tablero,x,y) if vecinos >= 3 and vecinos <= 6: xpos = x + random.randint(-1,1) if xpos <= 0: xpos = 1 if xpos >= filas: xpos = filas-1 ypos = y + random.randint(-1,1) if ypos <= 0: ypos = 1 if ypos >= columnas: ypos = columnas-1 tablero[xpos][ypos]=1 else: tablero[x][y]=0 def bucleprincipal(filas,columnas,pulsos): pulso=0 tablero = cargartablero(30,30) while pulso < pulsos: os.system('clear') print "Pulso: ",pulso iteracion(tablero) dibujartablero(tablero) pulso = pulso + 1 time.sleep(0.2) numero = input("Ingrese el numero de filas y columnas (unico numero):") pulsos = input("Ingrese el numero de pulsos:") bucleprincipal(numero,numero,pulsos)