Skip to content

Commit d93f201

Browse files
committed
Primeira versao carro
1 parent 3a0a28c commit d93f201

1 file changed

Lines changed: 140 additions & 0 deletions

File tree

‎oo/carro.py‎

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
'''
2+
Você deve criar uma classe carro que vai possuir
3+
dois atributos compostos por outras duas classes:
4+
5+
1. Motor
6+
2. Direção
7+
8+
O Motor terá a responsabilidade de controlar a velocidade.
9+
Ele oferece os seguintes atributos:
10+
11+
1. Atributo de dado velocidade
12+
2. Método acelerar, que deverá incremetar a velocidade de uma unidade
13+
3. Método frear que deverá decrementar a velocidade em duas unidades
14+
15+
A Direção terá a responsabilidade de controlar a direção. Ela oferece
16+
os seguintes atributos:
17+
18+
1. Valor de direção com valores possíveis: Norte, Sul, Leste, Oeste.
19+
2. Método girar_a_direita
20+
3. Método girar_a_esquerda
21+
22+
N
23+
O L
24+
S
25+
26+
Exemplo:
27+
>>> # Testando motor
28+
>>> motor = Motor()
29+
>>> motor.velocidade
30+
0
31+
>>> motor.acelerar()
32+
>>> motor.velocidade
33+
1
34+
>>> motor.acelerar()
35+
>>> motor.velocidade
36+
2
37+
>>> motor.acelerar()
38+
>>> motor.velocidade
39+
3
40+
>>> motor.frear()
41+
>>> motor.velocidade
42+
1
43+
>>> motor.frear()
44+
>>> motor.velocidade
45+
0
46+
>>> # Testando Direcao
47+
>>> direcao = Direcao()
48+
>>> direcao.valor
49+
'Norte'
50+
>>> direcao.girar_a_direita()
51+
>>> direcao.valor
52+
'Leste'
53+
>>> direcao.girar_a_direita()
54+
>>> direcao.valor
55+
'Sul'
56+
>>> direcao.girar_a_direita()
57+
>>> direcao.valor
58+
'Oeste'
59+
>>> direcao.girar_a_direita()
60+
>>> direcao.valor
61+
'Norte'
62+
>>> direcao.girar_a_esquerda()
63+
>>> direcao.valor
64+
'Oeste'
65+
>>> direcao.girar_a_esquerda()
66+
>>> direcao.valor
67+
'Sul'
68+
>>> direcao.girar_a_esquerda()
69+
>>> direcao.valor
70+
'Leste'
71+
>>> direcao.girar_a_esquerda()
72+
>>> direcao.valor
73+
'Norte'
74+
>>> carro = Carro(direcao, motor)
75+
>>> carro.calcular_velocidade()
76+
0
77+
>>> carro.acelerar()
78+
>>> carro.calcular_velocidade()
79+
1
80+
>>> carro.acelerar()
81+
>>> carro.calcular_velocidade()
82+
2
83+
>>> carro.frear()
84+
>>> carro.calcular_velocidade()
85+
0
86+
>>> carro.calcular_direcao()
87+
'Norte'
88+
>>> carro.girar_a_direita()
89+
>>> carro.calcular_direcao()
90+
'Leste'
91+
>>> carro.girar_a_esquerda()
92+
>>> carro.calcular_direcao()
93+
'Norte'
94+
>>> carro.girar_a_esquerda()
95+
>>> carro.calcular_direcao()
96+
'Oeste'
97+
'''
98+
99+
100+
class Motor:
101+
def __init__(self):
102+
self.velocidade = 0
103+
104+
def acelerar(self):
105+
self.velocidade += 1
106+
107+
def frear(self):
108+
self.velocidade += -2
109+
if self.velocidade < 0:
110+
self.velocidade = 0
111+
112+
113+
class Direcao:
114+
direcoes = ['Norte', 'Leste', 'Sul', 'Oeste']
115+
116+
def __init__(self):
117+
self.valor = self.direcoes[0]
118+
119+
def girar_a_direita(self):
120+
atual = self.direcoes.index(self.valor)
121+
try:
122+
self.valor = self.direcoes[atual+1]
123+
except IndexError:
124+
self.valor = self.direcoes[0]
125+
126+
def girar_a_esquerda(self):
127+
atual = self.direcoes.index(self.valor)
128+
129+
self.valor = self.direcoes[atual-1]
130+
131+
132+
class Carro:
133+
def __init__(self, direcao, motor):
134+
self.direcao = direcao.valor
135+
self.motor = motor.velocidade
136+
137+
def calcular_velocidade(self):
138+
return self.motor
139+
140+
def acelerar(self):

0 commit comments

Comments
 (0)