|
22 | 22 | S |
23 | 23 |
|
24 | 24 | Exemplo: |
25 | | - # Testando motor |
26 | | - motor = Motor() |
27 | | - motor.velocidade |
| 25 | + >>> # Testando motor |
| 26 | + >>> motor = Motor() |
| 27 | + >>> motor.velocidade |
28 | 28 | 0 |
29 | | - motor.acelerar() |
30 | | - motor.velocidade |
| 29 | + >>> motor.acelerar() |
| 30 | + >>> motor.velocidade |
31 | 31 | 1 |
32 | | - motor.acelerar() |
33 | | - motor.velocidade |
| 32 | + >>> motor.acelerar() |
| 33 | + >>> motor.velocidade |
34 | 34 | 2 |
35 | | - motor.acelerar() |
36 | | - motor.velocidade |
| 35 | + >>> motor.acelerar() |
| 36 | + >>> motor.velocidade |
37 | 37 | 3 |
38 | | - motor.frear() |
39 | | - motor.velocidade |
| 38 | + >>> motor.frear() |
| 39 | + >>> motor.velocidade |
40 | 40 | 1 |
41 | | - motor.frear() |
42 | | - motor.velocidade |
| 41 | + >>> motor.frear() |
| 42 | + >>> motor.velocidade |
43 | 43 | 0 |
44 | | - # Testando Direcao |
45 | | - direcao = Direcao() |
46 | | - direcao.valor |
| 44 | + >>> # Testando Direcao |
| 45 | + >>> direcao = Direcao() |
| 46 | + >>> direcao.valor |
47 | 47 | 'Norte' |
48 | | - direcao.girar_a_direita() |
49 | | - direcao.valor |
| 48 | + >>> direcao.girar_a_direita() |
| 49 | + >>> direcao.valor |
50 | 50 | 'Leste' |
51 | | - direcao.girar_a_direita() |
52 | | - direcao.valor |
| 51 | + >>> direcao.girar_a_direita() |
| 52 | + >>> direcao.valor |
53 | 53 | 'Sul' |
54 | | - direcao.girar_a_direita() |
55 | | - direcao.valor |
| 54 | + >>> direcao.girar_a_direita() |
| 55 | + >>> direcao.valor |
56 | 56 | 'Oeste' |
57 | | - direcao.girar_a_direita() |
58 | | - direcao.valor |
| 57 | + >>> direcao.girar_a_direita() |
| 58 | + >>> direcao.valor |
59 | 59 | 'Norte' |
60 | | - direcao.girar_a_esquerda() |
61 | | - direcao.valor |
| 60 | + >>> direcao.girar_a_esquerda() |
| 61 | + >>> direcao.valor |
62 | 62 | 'Oeste' |
63 | | - direcao.girar_a_esquerda() |
64 | | - direcao.valor |
| 63 | + >>> direcao.girar_a_esquerda() |
| 64 | + >>> direcao.valor |
65 | 65 | 'Sul' |
66 | | - direcao.girar_a_esquerda() |
67 | | - direcao.valor |
| 66 | + >>> direcao.girar_a_esquerda() |
| 67 | + >>> direcao.valor |
68 | 68 | 'Leste' |
69 | | - direcao.girar_a_esquerda() |
70 | | - direcao.valor |
| 69 | + >>> direcao.girar_a_esquerda() |
| 70 | + >>> direcao.valor |
71 | 71 | 'Norte' |
72 | | - carro = Carro(direcao, motor) |
73 | | - carro.calcular_velocidade() |
| 72 | + >>> carro = Carro(direcao, motor) |
| 73 | + >>> carro.calcular_velocidade() |
74 | 74 | 0 |
75 | | - carro.acelerar() |
76 | | - carro.calcular_velocidade() |
| 75 | + >>> carro.acelerar() |
| 76 | + >>> carro.calcular_velocidade() |
77 | 77 | 1 |
78 | | - carro.acelerar() |
79 | | - carro.calcular_velocidade() |
| 78 | + >>> carro.acelerar() |
| 79 | + >>> carro.calcular_velocidade() |
80 | 80 | 2 |
81 | | - carro.frear() |
82 | | - carro.calcular_velocidade() |
| 81 | + >>> carro.frear() |
| 82 | + >>> carro.calcular_velocidade() |
83 | 83 | 0 |
84 | | - carro.calcular_direcao() |
| 84 | + >>> carro.calcular_direcao() |
85 | 85 | 'Norte' |
86 | | - carro.girar_a_direita() |
87 | | - carro.calcular_direcao() |
| 86 | + >>> carro.girar_a_direita() |
| 87 | + >>> carro.calcular_direcao() |
88 | 88 | 'Leste' |
89 | | - carro.girar_a_esquerda() |
90 | | - carro.calcular_direcao() |
| 89 | + >>> carro.girar_a_esquerda() |
| 90 | + >>> carro.calcular_direcao() |
91 | 91 | 'Norte' |
92 | | - carro.girar_a_esquerda() |
93 | | - carro.calcular_direcao() |
| 92 | + >>> carro.girar_a_esquerda() |
| 93 | + >>> carro.calcular_direcao() |
94 | 94 | 'Oeste' |
95 | 95 | """ |
96 | 96 |
|
97 | 97 | class Motor: |
98 | | - def __init__(self, velocidade=0): |
99 | | - self.velocidade = velocidade |
| 98 | + def __init__(self): |
| 99 | + self.velocidade = 0 |
100 | 100 |
|
101 | 101 | def acelerar(self): |
102 | 102 | self.velocidade += 1 |
103 | 103 |
|
104 | 104 | 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' |
106 | 113 |
|
107 | 114 |
|
108 | 115 | 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 |
111 | 124 |
|
112 | 125 | 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] |
120 | 127 |
|
121 | 128 | 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 | + |
129 | 131 |
|
130 | 132 | 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