Skip to content

Commit 7697d20

Browse files
committed
Correção do exercício
1 parent dd77d72 commit 7697d20

1 file changed

Lines changed: 89 additions & 112 deletions

File tree

‎oo/carro.py‎

Lines changed: 89 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -22,155 +22,132 @@
2222
S
2323
2424
Exemplo:
25-
# Testando motor
26-
motor = Motor()
27-
motor.velocidade
25+
>>> # Testando motor
26+
>>> motor = Motor()
27+
>>> motor.velocidade
2828
0
29-
motor.acelerar()
30-
motor.velocidade
29+
>>> motor.acelerar()
30+
>>> motor.velocidade
3131
1
32-
motor.acelerar()
33-
motor.velocidade
32+
>>> motor.acelerar()
33+
>>> motor.velocidade
3434
2
35-
motor.acelerar()
36-
motor.velocidade
35+
>>> motor.acelerar()
36+
>>> motor.velocidade
3737
3
38-
motor.frear()
39-
motor.velocidade
38+
>>> motor.frear()
39+
>>> motor.velocidade
4040
1
41-
motor.frear()
42-
motor.velocidade
41+
>>> motor.frear()
42+
>>> motor.velocidade
4343
0
44-
# Testando Direcao
45-
direcao = Direcao()
46-
direcao.valor
44+
>>> # Testando Direcao
45+
>>> direcao = Direcao()
46+
>>> direcao.valor
4747
'Norte'
48-
direcao.girar_a_direita()
49-
direcao.valor
48+
>>> direcao.girar_a_direita()
49+
>>> direcao.valor
5050
'Leste'
51-
direcao.girar_a_direita()
52-
direcao.valor
51+
>>> direcao.girar_a_direita()
52+
>>> direcao.valor
5353
'Sul'
54-
direcao.girar_a_direita()
55-
direcao.valor
54+
>>> direcao.girar_a_direita()
55+
>>> direcao.valor
5656
'Oeste'
57-
direcao.girar_a_direita()
58-
direcao.valor
57+
>>> direcao.girar_a_direita()
58+
>>> direcao.valor
5959
'Norte'
60-
direcao.girar_a_esquerda()
61-
direcao.valor
60+
>>> direcao.girar_a_esquerda()
61+
>>> direcao.valor
6262
'Oeste'
63-
direcao.girar_a_esquerda()
64-
direcao.valor
63+
>>> direcao.girar_a_esquerda()
64+
>>> direcao.valor
6565
'Sul'
66-
direcao.girar_a_esquerda()
67-
direcao.valor
66+
>>> direcao.girar_a_esquerda()
67+
>>> direcao.valor
6868
'Leste'
69-
direcao.girar_a_esquerda()
70-
direcao.valor
69+
>>> direcao.girar_a_esquerda()
70+
>>> direcao.valor
7171
'Norte'
72-
carro = Carro(direcao, motor)
73-
carro.calcular_velocidade()
72+
>>> carro = Carro(direcao, motor)
73+
>>> carro.calcular_velocidade()
7474
0
75-
carro.acelerar()
76-
carro.calcular_velocidade()
75+
>>> carro.acelerar()
76+
>>> carro.calcular_velocidade()
7777
1
78-
carro.acelerar()
79-
carro.calcular_velocidade()
78+
>>> carro.acelerar()
79+
>>> carro.calcular_velocidade()
8080
2
81-
carro.frear()
82-
carro.calcular_velocidade()
81+
>>> carro.frear()
82+
>>> carro.calcular_velocidade()
8383
0
84-
carro.calcular_direcao()
84+
>>> carro.calcular_direcao()
8585
'Norte'
86-
carro.girar_a_direita()
87-
carro.calcular_direcao()
86+
>>> carro.girar_a_direita()
87+
>>> carro.calcular_direcao()
8888
'Leste'
89-
carro.girar_a_esquerda()
90-
carro.calcular_direcao()
89+
>>> carro.girar_a_esquerda()
90+
>>> carro.calcular_direcao()
9191
'Norte'
92-
carro.girar_a_esquerda()
93-
carro.calcular_direcao()
92+
>>> carro.girar_a_esquerda()
93+
>>> carro.calcular_direcao()
9494
'Oeste'
9595
"""
9696

9797
class Motor:
98-
def __init__(self, velocidade=0):
99-
self.velocidade = velocidade
98+
def __init__(self):
99+
self.velocidade = 0
100100

101101
def acelerar(self):
102102
self.velocidade += 1
103103

104104
def frear(self):
105-
self.velocidade = self.velocidade - 2 if self.velocidade >= 2 else 0
105+
self.velocidade -= 2
106+
self.velocidade = max(0, self.velocidade)
107+
108+
109+
NORTE = 'Norte'
110+
LESTE = 'Leste'
111+
SUL = 'Sul'
112+
OESTE = 'Oeste'
106113

107114

108115
class Direcao:
109-
def __init__(self, valor='Norte'):
110-
self.valor = valor
116+
rotacao_a_direita_dct = {
117+
NORTE: LESTE, LESTE: SUL, SUL: OESTE, OESTE: NORTE
118+
}
119+
rotacao_a_esquerda_dct = {
120+
NORTE: OESTE, OESTE: SUL, SUL: LESTE, LESTE: NORTE
121+
}
122+
def __init__(self):
123+
self.valor = NORTE
111124

112125
def girar_a_direita(self):
113-
direcoes = {
114-
'Norte': 'Leste',
115-
'Leste': 'Sul',
116-
'Sul': 'Oeste',
117-
'Oeste': 'Norte'
118-
}
119-
self.valor = direcoes[self.valor]
126+
self.valor = self.rotacao_a_direita_dct[self.valor]
120127

121128
def girar_a_esquerda(self):
122-
direcoes = {
123-
'Norte': 'Oeste',
124-
'Oeste': 'Sul',
125-
'Sul': 'Leste',
126-
'Leste': 'Norte'
127-
}
128-
self.valor = direcoes[self.valor]
129+
self.valor = self.rotacao_a_esquerda_dct[self.valor]
130+
129131

130132
class Carro:
131-
def __init__(self):
132-
self.motor = Motor()
133-
self.direcao = Direcao()
134-
135-
136-
if __name__ == '__main__':
137-
c = Carro()
138-
print('acelerando')
139-
c.motor.acelerar()
140-
print(c.motor.velocidade)
141-
c.motor.acelerar()
142-
print(c.motor.velocidade)
143-
c.motor.acelerar()
144-
print(c.motor.velocidade)
145-
146-
print('freando')
147-
c.motor.frear()
148-
print(c.motor.velocidade)
149-
c.motor.frear()
150-
print(c.motor.velocidade)
151-
c.motor.frear()
152-
print(c.motor.velocidade)
153-
c.motor.acelerar()
154-
print(c.motor.velocidade)
155-
156-
print('girando a direita')
157-
print(c.direcao.valor)
158-
c.direcao.girar_a_direita()
159-
print(c.direcao.valor)
160-
c.direcao.girar_a_direita()
161-
print(c.direcao.valor)
162-
c.direcao.girar_a_direita()
163-
print(c.direcao.valor)
164-
c.direcao.girar_a_direita()
165-
print(c.direcao.valor)
166-
167-
print('girando a esquerda')
168-
print(c.direcao.valor)
169-
c.direcao.girar_a_esquerda()
170-
print(c.direcao.valor)
171-
c.direcao.girar_a_esquerda()
172-
print(c.direcao.valor)
173-
c.direcao.girar_a_esquerda()
174-
print(c.direcao.valor)
175-
c.direcao.girar_a_esquerda()
176-
print(c.direcao.valor)
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()

0 commit comments

Comments
 (0)