Problema al hacer el juego de la vida
Publicado por Astie (1 intervención) el 12/04/2020 20:56:31
Hola a todos! Ando haciendo el juego de la vida y tengo un problema que no logro solucionar.
Cuando ejecuto la función Turno no sé por qué se modifica la matriz A en lugar de la matriz Auxiliar y no entiendo por qué. Si se quita el comentario del print(A) dentro de la función turno podemos ver que la matriz va cambiando en cada iteración del bucle cuando la matriz A debería ser la misma. ¿Dónde está el error?
Un saludo y muchas gracias.
Cuando ejecuto la función Turno no sé por qué se modifica la matriz A en lugar de la matriz Auxiliar y no entiendo por qué. Si se quita el comentario del print(A) dentro de la función turno podemos ver que la matriz va cambiando en cada iteración del bucle cuando la matriz A debería ser la misma. ¿Dónde está el error?
Un saludo y muchas gracias.
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
import numpy as np
def inicializar_tablero (m,n):
A = np.zeros((m,n))
print("introduzca las células que desee. Cuando quiera parar pulse cualquier tecla que no sea un número.")
i=0
while i==0 :
try:
x = int(input("Introduce la fila donde quieres una celula: "))
y = int(input("Introduce la columna donde quieres una celula: "))
A[x-1][y-1] = 1
except IndexError:
print("La casilla que ha elegido para la célula no existe.")
except ValueError:
print("Celulas intrducidas correctamente.")
return A
return A
def contar_celulas (A,m,n):
count = 0
for i in [-1,0,1]:
for j in [-1,0,1]:
if i != 0 or j != 0:
if (m+i>=0 and n+j>=0 ) and (m+i<=len(A)-1 and n+j<=len(A[1])-1):
#pint(m+i,n+j)
if A[m+i][n+j]==1:
count+= 1
return count
def turno (A):
Aux=A
for i in range(len(A)):
for j in range(len(A[1])):
n=contar_celulas(A,i,j)
#print(i,j,n)
#print(A)
if A[i][j] == 0 and n==3:
Aux[i][j]=1
elif A[i][j] == 1 and (n<2 or n>3):
Aux[i][j]=0
#print("\n")
return Aux
Tablero1=[
[1, 0, 0, 0, 0],
[0, 1, 1, 0, 0],
[1, 1, 0, 0, 0,],
[0, 0, 0, 0, 0,],
[0, 0, 0, 0, 0,]]
print(turno(Tablero1))
Valora esta pregunta


0