1212
1313A Direção terá a responsabilidade de controlar a direção. Ela oferece
1414os seguintes atributos:
15- 1) Valor de direção com valores possíveis: Norte, Sul, Lest , Oeste
15+ 1) Valor de direção com valores possíveis: Norte, Sul, Leste , Oeste
16162) Método girar_a_direita
17173) Método girar_a_esquerda
1818 N
5656 >>> direcao.valor
5757 'Norte'
5858 >>> direcao.girar_a_esquerda()
59- >>> direcao.valor
59+ >>> direcao.valor
6060 'Oeste'
6161 >>> direcao.girar_a_esquerda()
6262 >>> direcao.valor
@@ -100,34 +100,59 @@ def acelerar(self):
100100 self .velocidade += 1
101101
102102 def frear (self ):
103- if self .velocidade < 2 :
104- self .velocidade = 0
105- else :
106- self .velocidade -= 2
107-
103+ #if self.velocidade < 2:
104+ # self.velocidade = 0
105+ #else:
106+ # self.velocidade -= 2
107+ self .velocidade -= 2
108+ self .velocidade = max (0 , self .velocidade )
108109
109110class Direcao :
110111 direcao = ('Norte' , 'Leste' , 'Sul' , 'Oeste' )
111112
112113 def __init__ (self ):
113- self .valor = 0
114+ self .valor = Direcao . direcao [ 0 ]
114115
115116 def girar_a_direita (self ):
116- if self .valor == 3 :
117- self .valor = direcao [0 ]
117+ if self .valor == 'Oeste' :
118+ self .valor = Direcao . direcao [0 ]
118119 else :
119- self .valor += 1
120+ self .valor = Direcao . direcao [ Direcao . direcao . index ( self . valor ) + 1 ]
120121
121122 def girar_a_esquerda (self ):
122- if self .valor == 0 :
123- self .valor = 3
123+ if self .valor == 'Norte' :
124+ self .valor = Direcao . direcao [ 3 ]
124125 else :
125- self .valor -= 1
126+ self .valor = Direcao . direcao [ Direcao . direcao . index ( self . valor ) - 1 ]
126127
127128 def calcular_direcao (self ):
128129 return direcao [self .valor ]
129130
130131
132+ class Carro :
133+ def __init__ (self , direcao , motor ):
134+ self .direcao = direcao
135+ self .motor = motor
136+
137+ def calcular_velocidade (self ):
138+ return self .motor .velocidade
139+
140+ def acelerar (self ):
141+ self .motor .acelerar ()
142+
143+ def frear (self ):
144+ self .motor .frear ()
145+
146+ def calcular_direcao (self ):
147+ return self .direcao .valor
148+
149+ def girar_a_direita (self ):
150+ self .direcao .girar_a_direita ()
151+
152+ def girar_a_esquerda (self ):
153+ self .direcao .girar_a_esquerda ()
154+
155+
131156if __name__ == '__main__' :
132157 # Testando o motor
133158 motor = Motor ()
@@ -146,5 +171,37 @@ def calcular_direcao(self):
146171 # Testando a direção
147172 direcao = Direcao ()
148173 print (direcao .valor )
174+ direcao .girar_a_direita ()
175+ print (direcao .valor )
176+ direcao .girar_a_direita ()
177+ print (direcao .valor )
178+ direcao .girar_a_direita ()
179+ print (direcao .valor )
180+ direcao .girar_a_direita ()
181+ print (direcao .valor )
149182
183+ direcao .girar_a_esquerda ()
184+ print (direcao .valor )
185+ direcao .girar_a_esquerda ()
186+ print (direcao .valor )
187+ direcao .girar_a_esquerda ()
188+ print (direcao .valor )
189+ direcao .girar_a_esquerda ()
190+ print (direcao .valor )
150191
192+ #t Testando o carro
193+ carro = Carro (direcao , motor )
194+ print (carro .calcular_velocidade ())
195+ carro .acelerar ()
196+ print (carro .calcular_velocidade ())
197+ carro .acelerar ()
198+ print (carro .calcular_velocidade ())
199+ carro .frear ()
200+ print (carro .calcular_velocidade ())
201+ print (carro .calcular_direcao ())
202+ carro .girar_a_direita ()
203+ print (carro .calcular_direcao ())
204+ carro .girar_a_esquerda ()
205+ print (carro .calcular_direcao ())
206+ carro .girar_a_esquerda ()
207+ print (carro .calcular_direcao ())
0 commit comments