Python - Ayuda a corregir python

 
Vista:
Imágen de perfil de cristian

Ayuda a corregir python

Publicado por cristian (5 intervenciones) el 15/12/2014 23:39:01
Hola, tengo este codigo en python y no se cual es el error no me funciona
Creo que el error esta al crear la matriz en la clase tablero, les agradezco mucho su ayuda,
PRIMERA CLASE
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
class Tablero:
 
 
    tabInicial = [range(10) for i in range(10)]
    tabFinal = [range(10) for i in range(10)]
 
    def set_Filas(fil):
        filas = fil
 
    def set_Columnas(col):
        columnas = col
 
    def get_Filas(self):
        return self._filas
 
    def get_Columnas(self):
        return self._columnas
 
    def graficar(tab):
        print()
        for i in tab.get_Filas()- 1:
            print("|")
            for j in tab.get_Columnas()- 1:
                if tab[i][j] == 1:
                    print("*")
                else:
                    print("-")
                if (j != (tab[i].length - 1)):
                    print("end=")
                    print("|")
 
 
    def get_TableroIni(self):
        return self._tableroIni
 
 
    def set_TableroIni(self, tab):
        self._TabInicial = tab
 
 
    def get_TableroFin(self):
        return self._tabFinal
 
 
    def set_TableroFin(self, tab):
        self._tabFinal = tab
 
 
    def initTablero(tab):
        for i in tab.get_Filas() - 1:
            for j in tab.get_Columnas() - 1:
                tab[i][j] = 0
 
 
    def existeInsecto(coordM ,coordN,tab):
        if (tab.get_TableroIni()[coordM][coordN] == 1):
            print("***ERROR LA COORDENADA (" + coordM + ", " + coordN + ") YA TIENE UN INSECTO.")
        return (tab.get_TableroIni()[coordM][coordN] == 1)
 
    def coordenadaValida( K ,tab ):
        coordM = 0
        coordN = 0
        if K >= 1:
            while K.existeInsecto(coordM, coordN):
                while coordM < 0 or coordM >= tab.get_Filas():
                    print("Coordenada M (entre 0-" + (tab.get_TableroIni().length - 1) + "): ")
                    coordM = input()
                while  coordN < 0 or coordN >= tab.get_Columnas():
                    print("Coordenada N (entre 0-" + (tab.get_TableroIni().length - 1) + "): ")
                    coordN = input()
            tab.get_TableroIni()[coordM][coordN] = 1
            tab.graficar(tab.get_TableroIni())
            K.coordenadaValida(K - 1)
 
    def get_coordenadas(coordM, coordN):
        vecinos = [range(8) for i in range(2)]
        M = 0
        i = (coordM - 1)
        j = (coordN - 1)
        for i in coordM + 1:
            for j in coordN + 1:
                if coordM == i and coordN == j:
                    continue
                else:
                    vecinos[M][0] = i
                    vecinos[M][0] = j
                    M = M + 1
        return vecinos
 
    def coordenada_valida(coM, coN,tab):
        aux = False
        if coM >= 0 and coM < tab.get_Filas():
            if coN >= 0 and coN < tab.get_Columnas():
                aux = True
        return aux
 
    def get_Vecinos(coordVe, tablero):
        contarVec = 0
        tab = tablero
        for i in 7:
            x = coordVe[i][0]
            y = coordVe[i][1]
            if x >= 0 and y < tab.get_Filas() and y < tab.get_Columnas():
                if tab[x][y] == 1:
                    contarVec = contarVec + 1
        return contarVec


SEGUNDA CLASE

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
class Juego(Tablero):
 
    def set_Juego(self):
        print("Digite por favor las filas del tablero(N):")
        N = input()
        print("Digite por favor las Columnas del tablero (M):")
        M = input()
        M=int(M)
        N=int(N)
        tab=[range(M) for i in range(N)]
        Tablero.set_Filas(M)
        Tablero.set_Columnas(N)
        Tablero.set_TableroIni(self,tab)
        Tablero.set_TableroFin(self,tab)
        Tablero.initTablero(Tablero.set_TableroIni(self,tab))
        Tablero.initTablero(Tablero.set_TableroFin(self,tab))
        K = 0
        while K <= 0 or K > (M * N):
            print("Digite por favor la poblacion de insectos (K), que debe ser entre 1 y " + (M * N) + ": ")
            K = input()
        print("__________________________________________________")
        print("A continuacion digite cada una de las coordenadas para los " + K + " insectos.")
        Tablero.coordenadaValida(K)
        Tablero.set_TableroFin(Tablero.get_TableroIni())
 
    def Reglas(numVec):
        aux = 0
        if numVec == 0 or numVec == 1 or numVec == 4 or numVec == 5 or numVec == 6 or numVec == 7 or numVec == 8:
            aux = 0
        elif numVec == 2 or numVec == 3:
            aux = 1;
        return aux;
 
    def Jugar(self):
        print("__________________________________________________")
        L = 0
        while L <= 0:
            print("Digite ahora los L ciclos que desea realizar la simulacion: ")
            L = input()
        copiatab = [range(Tablero.get_Filas()) for i in range(Tablero.set_Columnas())]
        k = 1
        for k in k <= L:
            for i in i < Tablero.get_Filas():
                for j in j < Tablero.set_Columnas():
                    original = Tablero.get_TableroFin()[i][j]
                    auxV = Tablero.get_Vecinos(Tablero.get_coordenadas(i, j), Tablero.get_TableroFin())
                    if original == 1:
                        copiatab[i][j] = self.Reglas(auxV)
                    elif auxV == 3:
                        copiatab[i][j] = 1
                    else:
                        copiatab[i][j] = 0
            Tablero.set_TableroFin(copiatab)
            copiatab = [range(Tablero.get_Filas()) for i in range(Tablero.set_Columnas())]
 
    def get_Juego(self):
        self.Jugar()
        print("__________________________________________________")
        print("EL ESTADO INICIAL DE LA POBLACION ES: ")
        Tablero.graficar(Tablero.get_TableroIni())
        print("DESPUES DE " + L + " CICLOS EL ESTADO FINAL DE LA POBLACION ES: ")
        Tablero.graficar(Tablero.getTableroFin())


TERCERA CLASE

1
2
3
4
class Principal():
    obj = Juego1()
    obj.set_Juego()
    obj.get_Juego()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de cristian

Ayuda a corregir python

Publicado por cristian (5 intervenciones) el 16/12/2014 00:00:06
porfaaa es que es para mañana :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cristofer

Ayuda a corregir python

Publicado por Cristofer (34 intervenciones) el 16/12/2014 01:20:23
Hola, lo siento pero no puedo analizar el código sin las indentaciones correctas... podrías subir tu documento .py en algún host de archivos como MEGA y pasarlo por acá de otra manera no puedo ayudarte :/
por otro lado cuando estoy bloqueado en un código por un error que no se de donde sale borro todo y comienzo del principio santo remedio ;D algunos se volverían locos al hacer esto pero si realmente te gusta programar no le veo el problema :/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de cristian

Ayuda a corregir python

Publicado por cristian (5 intervenciones) el 16/12/2014 01:36:22
Estas son las clases, es que apenas estoy aprendiendo y estoy muy atareado, agradezco su ayuda
intente hacerlo de nuevo y no me resulto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de cristian

Ayuda a corregir python

Publicado por cristian (5 intervenciones) el 16/12/2014 02:14:04
https://mega.co.nz/#!tZA3zLoR!1kfmf_xdU2Q4O2DIwa9MJKMnyk99qws6RKftbhoeEbs

enlace mega
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cristofer

Ayuda a corregir python

Publicado por Cristofer (34 intervenciones) el 16/12/2014 03:48:57
ummm lo siento no puedo encontrar el error, supongo que tu tienes aquel modulo "juego_De_la_vida"
cuando ejecutas tu programa no aparece ningún mensaje de error? si no pasa nada quizás el problema reside en que el programa quedo estancado en algún bucle while o algo por el estilo ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de cristian

Ayuda a corregir python

Publicado por cristian (5 intervenciones) el 16/12/2014 03:57:30
si es el juego de la vida, aparece el error " int object is not iterable" cuando llega a def iniTablero(tab)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cristofer

Ayuda a corregir python

Publicado por Cristofer (34 intervenciones) el 16/12/2014 04:13:26
Bueno yo creo que el error reside en esto:

1
2
3
for i in tab.get_Filas() - 1:
    for j in tab.get_Columnas() - 1:
        tab[i][j] = 0
Esto ocurre por que "tab.get_Filas() - 1" es de tipo INT
o por que "tab.get_Columnas() -1" es de tipo INT

te recomendaria tratar que para cuando llegue al FOR los valores lleguen como String y luego cuando lo necesites convertirlos a int usando

1
int(var)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar