
Ejercicio POO
Publicado por anonymous (38 intervenciones) el 07/07/2021 01:55:36
Buenas noches, tengo una duda con mi código, con estos inputs;
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).
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


0