|
64 | 64 | 'Oeste' |
65 | 65 | >>> direcao.virar_a_direita() |
66 | 66 | >>> direcao.valor |
67 | | - 'Sul' |
| 67 | + 'Norte' |
68 | 68 | >>> direcao.virar_a_direita() |
69 | 69 | >>> direcao.valor |
70 | 70 | 'Leste' |
71 | 71 | >>> direcao.virar_a_direita() |
72 | 72 | >>> direcao.valor |
73 | | - 'Norte' |
| 73 | + 'Sul' |
74 | 74 | >>> carro = Carro(direcao, motor) |
75 | 75 | >>> carro.calcular_velocidade() |
76 | 76 | 0 |
|
83 | 83 | >>> carro.acelerar() |
84 | 84 | >>> carro.calcular_velocidade() |
85 | 85 | 3 |
86 | | - >>> carro.frerar() |
| 86 | + >>> carro.frear() |
87 | 87 | >>> carro.calcular_velocidade() |
88 | 88 | 1 |
89 | | - >>> carro.frerar() |
| 89 | + >>> carro.frear() |
90 | 90 | >>> carro.calcular_velocidade() |
91 | 91 | 0 |
92 | 92 | >>> carro.calcular_direcao() |
93 | | - 'Norte' |
| 93 | + 'Sul' |
94 | 94 | >>> carro.virar_a_direita() |
95 | 95 | >>> carro.calcular_direcao() |
96 | | - 'Leste' |
| 96 | + 'Oeste' |
97 | 97 | >>> carro.virar_a_esquerda() |
98 | 98 | >>> carro.calcular_direcao() |
99 | | - 'Norte' |
| 99 | + 'Sul' |
100 | 100 | """ |
101 | | -NORTE = 'Norte' |
102 | | -SUL = 'Sul' |
103 | | -LESTE = 'Leste' |
104 | | -OESTE = 'OESTE' |
105 | | -class Direcao: |
106 | | - def __init__(self): |
107 | | - self.valor = NORTE |
108 | 101 |
|
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() |
118 | 112 |
|
| 113 | + def frear(self): |
| 114 | + self.motor.frear() |
| 115 | + |
| 116 | + def calcular_direcao(self): |
| 117 | + return self.direcao.valor |
119 | 118 |
|
| 119 | + def virar_a_direita(self): |
| 120 | + self.direcao.virar_a_direita() |
120 | 121 |
|
121 | 122 | def virar_a_esquerda(self): |
| 123 | + self.direcao.virar_a_esquerda() |
| 124 | + |
122 | 125 |
|
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' |
131 | 130 |
|
| 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 | + } |
132 | 138 |
|
| 139 | + def __init__(self): |
| 140 | + self.valor = NORTE |
133 | 141 |
|
| 142 | + def virar_a_direita(self): |
| 143 | + self.valor = self.rotacao_a_direita_dct[self.valor] |
134 | 144 |
|
| 145 | + def virar_a_esquerda(self): |
| 146 | + self.valor = self.rotacao_a_esquerda_dct[self.valor] |
135 | 147 |
|
136 | 148 |
|
137 | 149 | class Motor: |
|
0 commit comments