Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/data/misc/lifegame
blob: 77165dfe5ffa1b13c8c46a7a12f2b97d152c9db4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# -*- 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)