Skip to content

Commit 78032e2

Browse files
committed
concluido doctests
1 parent e85892e commit 78032e2

1 file changed

Lines changed: 43 additions & 31 deletions

File tree

oo/carro.py

Lines changed: 43 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@
6464
'Oeste'
6565
>>> direcao.virar_a_direita()
6666
>>> direcao.valor
67-
'Sul'
67+
'Norte'
6868
>>> direcao.virar_a_direita()
6969
>>> direcao.valor
7070
'Leste'
7171
>>> direcao.virar_a_direita()
7272
>>> direcao.valor
73-
'Norte'
73+
'Sul'
7474
>>> carro = Carro(direcao, motor)
7575
>>> carro.calcular_velocidade()
7676
0
@@ -83,55 +83,67 @@
8383
>>> carro.acelerar()
8484
>>> carro.calcular_velocidade()
8585
3
86-
>>> carro.frerar()
86+
>>> carro.frear()
8787
>>> carro.calcular_velocidade()
8888
1
89-
>>> carro.frerar()
89+
>>> carro.frear()
9090
>>> carro.calcular_velocidade()
9191
0
9292
>>> carro.calcular_direcao()
93-
'Norte'
93+
'Sul'
9494
>>> carro.virar_a_direita()
9595
>>> carro.calcular_direcao()
96-
'Leste'
96+
'Oeste'
9797
>>> carro.virar_a_esquerda()
9898
>>> carro.calcular_direcao()
99-
'Norte'
99+
'Sul'
100100
"""
101-
NORTE = 'Norte'
102-
SUL = 'Sul'
103-
LESTE = 'Leste'
104-
OESTE = 'OESTE'
105-
class Direcao:
106-
def __init__(self):
107-
self.valor = NORTE
108101

109-
def virar_a_direita(self):
110-
if self.valor == NORTE:
111-
self.valor = LESTE
112-
elif self.valor == LESTE:
113-
self.valor = SUL
114-
elif self.valor == SUL:
115-
self.valor = OESTE
116-
elif self.valor == OESTE:
117-
self.valor = NORTE
102+
class Carro:
103+
def __init__(self, direcao, motor):
104+
self.motor = motor
105+
self.direcao = direcao
106+
107+
def calcular_velocidade(self):
108+
return self.motor.velocidade
109+
110+
def acelerar(self):
111+
self.motor.acelerar()
118112

113+
def frear(self):
114+
self.motor.frear()
115+
116+
def calcular_direcao(self):
117+
return self.direcao.valor
119118

119+
def virar_a_direita(self):
120+
self.direcao.virar_a_direita()
120121

121122
def virar_a_esquerda(self):
123+
self.direcao.virar_a_esquerda()
124+
122125

123-
if self.valor == NORTE:
124-
self.valor = OESTE
125-
elif self.valor == OESTE:
126-
self.valor = SUL
127-
elif self.valor == SUL:
128-
self.valor = LESTE
129-
elif self.valor == LESTE:
130-
self.valor = NORTE
126+
NORTE = 'Norte'
127+
SUL = 'Sul'
128+
LESTE = 'Leste'
129+
OESTE = 'Oeste'
131130

131+
class Direcao:
132+
rotacao_a_direita_dct = {
133+
NORTE: LESTE, LESTE: SUL, SUL: OESTE, OESTE: NORTE
134+
}
135+
rotacao_a_esquerda_dct = {
136+
NORTE: OESTE, OESTE: SUL, SUL: LESTE, LESTE: NORTE
137+
}
132138

139+
def __init__(self):
140+
self.valor = NORTE
133141

142+
def virar_a_direita(self):
143+
self.valor = self.rotacao_a_direita_dct[self.valor]
134144

145+
def virar_a_esquerda(self):
146+
self.valor = self.rotacao_a_esquerda_dct[self.valor]
135147

136148

137149
class Motor:

0 commit comments

Comments
 (0)