Skip to content

Commit 08ea803

Browse files
committed
Solucao inicial exercício Carros
1 parent de85dd7 commit 08ea803

1 file changed

Lines changed: 104 additions & 0 deletions

File tree

oo/carro.py

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
class Motor:
2+
3+
def __init__(self, velocidade = 0):
4+
self.velocidade = velocidade
5+
6+
def acelerar(self):
7+
self.velocidade += 1
8+
9+
def frear(self):
10+
self.velocidade = 0 if self.velocidade <= 2 else self.velocidade - 2
11+
12+
13+
class Direcao:
14+
direcoes = ("Norte", "Leste", "Sul", "Oeste")
15+
16+
def __init__(self, direcao = "Norte"):
17+
if direcao in self.direcoes:
18+
self.valor = direcao
19+
self.indDirecao = self.direcoes.index(direcao)
20+
else:
21+
print("Direcao: {0} inválida!".format(direcao))
22+
23+
def girar_a_direita(self):
24+
self.indDirecao = 0 if self.indDirecao == 3 else self.indDirecao + 1
25+
self.valor = self.direcoes[self.indDirecao]
26+
27+
def girar_a_esquerda(self):
28+
self.indDirecao = 3 if self.indDirecao == 0 else self.indDirecao -1
29+
self.valor = self.direcoes[self.indDirecao]
30+
31+
class Carro:
32+
33+
def __init__(self, motor = Motor(), direcao = Direcao()):
34+
self.motor = motor
35+
self.direcao = direcao
36+
37+
def calcular_velocidade(self):
38+
print(self.motor.velocidade)
39+
40+
def calcular_direcao(self):
41+
print(self.direcao.valor)
42+
43+
def acelerar(self):
44+
self.motor.acelerar()
45+
46+
def frear(self):
47+
self.motor.frear()
48+
49+
def girar_a_direita(self):
50+
self.direcao.girar_a_direita()
51+
52+
def girar_a_esquerda(self):
53+
self.direcao.girar_a_esquerda()
54+
55+
56+
if __name__ == '__main__':
57+
motor = Motor()
58+
print(motor.velocidade)
59+
motor.acelerar()
60+
print(motor.velocidade)
61+
motor.acelerar()
62+
print(motor.velocidade)
63+
motor.acelerar()
64+
print(motor.velocidade)
65+
motor.frear()
66+
print(motor.velocidade)
67+
motor.frear()
68+
print(motor.velocidade)
69+
70+
direcao = Direcao()
71+
print(direcao.valor)
72+
direcao.girar_a_direita()
73+
print(direcao.valor)
74+
direcao.girar_a_direita()
75+
print(direcao.valor)
76+
direcao.girar_a_direita()
77+
print(direcao.valor)
78+
direcao.girar_a_direita()
79+
print(direcao.valor)
80+
direcao.girar_a_esquerda()
81+
print(direcao.valor)
82+
direcao.girar_a_esquerda()
83+
print(direcao.valor)
84+
direcao.girar_a_esquerda()
85+
print(direcao.valor)
86+
direcao.girar_a_esquerda()
87+
print(direcao.valor)
88+
89+
carro = Carro(motor, direcao)
90+
carro.calcular_velocidade()
91+
carro.acelerar()
92+
carro.calcular_velocidade()
93+
carro.acelerar()
94+
carro.calcular_velocidade()
95+
carro.frear()
96+
carro.calcular_velocidade()
97+
carro.calcular_direcao()
98+
carro.girar_a_direita()
99+
carro.calcular_direcao()
100+
carro.girar_a_esquerda()
101+
carro.calcular_direcao()
102+
carro.girar_a_esquerda()
103+
carro.calcular_direcao()
104+

0 commit comments

Comments
 (0)