Python - Ayuda POO

 
Vista:
sin imagen de perfil

Ayuda POO

Publicado por anonymous (38 intervenciones) el 07/07/2021 11:19:03
Buenas noches, tengo una duda con mi código, con estos inputs;
1
2
3
4
5
6
7
camino_1 = Camino(["F", "O"], "rojo")
camino_2 = Camino(["E", "S"], "amarillo")
camino_3 = Camino(["F", "N"], "amarillo")
baldosa = Baldosa([camino_1, camino_2, camino_3])
baldosa.col = 65
baldosa.fila = 5
print(baldosa)

me deberia salir este output: Baldosa: Num. de Caminos = 3, Ubicacion = (5, 65), pero no lo logro, aquí dejo la explicación del output y mi codigo por si alguien me pudiese ayudar.

La baldosa de este ejemplo tiene tres caminos: dos amarillos y uno rojo. El camino_1 rojo tiene un extremo al oeste y otro en un fin, el camino_2 amarillo tiene como extremos el sur y el este, mientras que el camino_3 amarillo tiene como extremos el fin (al igual que el camino rojo) y el norte.

Lo primero que se hace es instanciar los tres caminos en el orden que fueron descritos. Luego, se instancia la baldosa dándole como parámetro una lista que contiene al camino_1, camino_2 y camino_3. La baldosa tiene por defecto posición (-1,-1), por lo que al renombrar estos atributos, la baldosa queda ahora en la columna 65 y la fila 5, es decir, en el punto (5,65).

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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
class Camino:
    def __init__(self,extremos,color):
 
        self.extremos = extremos
        self.color = color
        self.conquistado = False
 
    def __str__(self):
 
        return "Camino: extremos =" + " " + str(self.extremos) + ", " + "color = " + self.color
 
    def rotar(self,grados,sentido):
        self.grados = grados
        self.sentido = sentido
 
        for i in range(0,2):
 
            if sentido == "horario":
                if grados == 90:
 
                    if self.extremos[i] == "N":
                        self.extremos[i] = "E"
 
                    elif self.extremos[i] == "E":
                        self.extremos[i] = "S"
 
                    elif self.extremos[i] == "S":
                        self.extremos[i] = "O"
 
                    elif self.extremos[i] == "O":
                        self.extremos[i] = "N"
 
                    elif self.extremos[i] == "F":
                        self.extremos[i] = "F"
 
                elif grados == 180:
 
                    if self.extremos[i] == "N":
                        self.extremos[i] = "S"
 
                    elif self.extremos[i] == "E":
                        self.extremos[i] = "O"
 
                    elif self.extremos[i] == "S":
                        self.extremos[i] = "N"
 
                    elif self.extremos[i] == "O":
                        self.extremos[i] = "E"
 
                    elif self.extremos[i] == "F":
                        self.extremos[i] = "F"
 
                elif grados == 270:
 
                    if self.extremos[i] == "N":
                        self.extremos[i] = "O"
 
                    elif self.extremos[i] == "E":
                        self.extremos[i] = "N"
 
                    elif self.extremos[i] == "S":
                        self.extremos[i] = "E"
 
                    elif self.extremos[i] == "O":
                        self.extremos[i] = "S"
 
                    elif self.extremos[i] == "F":
                        self.extremos[i] = "F"
 
            elif sentido == "antihorario" :
 
                if grados == 90:
 
                    if self.extremos[i] == "N":
                        self.extremos[i] = "O"
 
                    elif self.extremos[i] == "O":
                        self.extremos[i] = "S"
 
                    elif self.extremos[i] == "S":
                        self.extremos[i] = "E"
 
                    elif self.extremos[i] == "E":
                        self.extremos[i] = "N"
 
                    elif self.extremos[i] == "F":
                        self.extremos[i] = "F"
 
                elif grados == 180:
 
                    if self.extremos[i] == "N":
                        self.extremos[i] = "S"
 
                    elif self.extremos[i] == "O":
                        self.extremos[i] = "E"
 
                    elif self.extremos[i] == "S":
                        self.extremos[i] = "N"
 
                    elif self.extremos[i] == "E":
                        self.extremos[i] = "O"
 
                    elif self.extremos[i] == "F":
                        self.extremos[i] = "F"
 
                elif grados == 270:
 
                    if self.extremos[i] == "N":
                        self.extremos[i] = "E"
 
                    elif self.extremos[i] == "O":
                        self.extremos[i] = "N"
 
                    elif self.extremos[i] == "S":
                        self.extremos[i] = "O"
 
                    elif self.extremos[i] == "E":
                        self.extremos[i] = "S"
 
                    elif self.extremos[i] == "F":
                        self.extremos[i] = "F"
 
class Baldosa:
 
    def caminos(self,camino,fila,col):
 
        self.camino = camino
        self.fila = -1
        self.col = -1
 
        return "Baldosa: Num. de Caminos =" + str(self.camino) + "Ubicacion =" + "("+ str(self.fila) + "," + str(self.col) + ")"
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