Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a6a3ecb

Browse files
author
renzon
committed
Retirada de lógica de componentes a serem implementados
1 parent 3f0d4f9 commit a6a3ecb

File tree

2 files changed

+19
-90
lines changed

2 files changed

+19
-90
lines changed

atores.py

+11-50
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def calcular_posicao(self, tempo):
3535
:param tempo: o tempo do jogo
3636
:return: posição x, y do ator
3737
"""
38-
return self.x, self.y
38+
return 1, 1
3939

4040
def colidir(self, outro_ator, intervalo=1):
4141
"""
@@ -47,29 +47,20 @@ def colidir(self, outro_ator, intervalo=1):
4747
4848
:param outro_ator: Ator a ser considerado na colisão
4949
:param intervalo: Intervalo a ser considerado
50-
:return:
5150
"""
52-
if self.status == DESTRUIDO or outro_ator.status == DESTRUIDO:
53-
return
54-
55-
if self.x - intervalo <= outro_ator.x <= self.x + intervalo and self.y - intervalo <= outro_ator.y <= self.y + intervalo:
56-
self.status = DESTRUIDO
57-
self.caracter = self._caracter_destruido
58-
outro_ator.caracter = outro_ator._caracter_destruido
59-
outro_ator.status = DESTRUIDO
51+
pass
6052

6153

6254
class Obstaculo(Ator):
63-
_caracter_ativo = 'O'
55+
pass
6456

6557

6658
class Porco(Ator):
67-
_caracter_ativo = '@'
68-
_caracter_destruido = '+'
59+
pass
6960

7061

7162
class Passaro(Ator):
72-
velocidade_escalar = None
63+
velocidade_escalar = 10
7364

7465
def __init__(self, x=0, y=0):
7566
"""
@@ -93,30 +84,15 @@ def foi_lancado(self):
9384
9485
:return: booleano
9586
"""
96-
return self._tempo_de_lancamento is not None
87+
return True
9788

9889
def colidir_com_chao(self):
9990
"""
10091
Método que executa lógica de colisão com o chão. Toda vez que y for menor ou igual a 0,
10192
o status dos Passaro deve ser alterado para destruido, bem como o seu caracter
10293
10394
"""
104-
if self.y <= 0:
105-
self.status = DESTRUIDO
106-
self.caracter = self._caracter_destruido
107-
108-
def _calcular_posicao_horizontal(self, delta_t):
109-
self.x = self._x_inicial + self.velocidade_escalar * delta_t * math.cos(self._angulo_de_lancamento)
110-
111-
def _calcular_posicao_vertical(self, delta_t):
112-
self.y = (self._y_inicial +
113-
self.velocidade_escalar * delta_t * math.sin(self._angulo_de_lancamento) -
114-
(GRAVIDADE / 2) * delta_t ** 2)
115-
116-
def _calcular_posicao(self, tempo):
117-
delta_t = tempo - self._tempo_de_lancamento
118-
self._calcular_posicao_vertical(delta_t)
119-
self._calcular_posicao_horizontal(delta_t)
95+
pass
12096

12197
def calcular_posicao(self, tempo):
12298
"""
@@ -132,11 +108,7 @@ def calcular_posicao(self, tempo):
132108
:param tempo: tempo de jogo a ser calculada a posição
133109
:return: posição x, y
134110
"""
135-
if self._tempo_de_lancamento is None:
136-
return self._x_inicial, self._y_inicial
137-
if self.status == ATIVO:
138-
self._calcular_posicao(tempo)
139-
return self.x, self.y
111+
return 1, 1
140112

141113

142114
def lancar(self, angulo, tempo_de_lancamento):
@@ -148,23 +120,12 @@ def lancar(self, angulo, tempo_de_lancamento):
148120
:param tempo_de_lancamento:
149121
:return:
150122
"""
151-
self._tempo_de_lancamento = tempo_de_lancamento
152-
self._angulo_de_lancamento = math.radians(angulo)
153-
154-
def _aguardando_lancamento(self, tempo):
155-
return not self.foi_lancado() or tempo < self._tempo_de_lancamento
156-
157-
def _ja_colidiu(self):
158-
return self.foi_lancado() and self.status() == DESTRUIDO
123+
pass
159124

160125

161126
class PassaroAmarelo(Passaro):
162-
velocidade_escalar = 30 # m/s
163-
_caracter_ativo = 'A'
164-
_caracter_destruido = 'a'
127+
pass
165128

166129

167130
class PassaroVermelho(Passaro):
168-
velocidade_escalar = 20 # m/s
169-
_caracter_ativo = 'V'
170-
_caracter_destruido = 'v'
131+
pass

fase.py

+8-40
Original file line numberDiff line numberDiff line change
@@ -28,32 +28,30 @@ def __init__(self, intervalo_de_colisao=1):
2828
self._porcos = []
2929
self._obstaculos = []
3030

31-
def _adicionar_ator(self, lista, *atores):
32-
lista.extend(atores)
3331

3432
def adicionar_obstaculo(self, *obstaculos):
3533
"""
3634
Adiciona obstáculos em uma fase
3735
3836
:param obstaculos:
3937
"""
40-
self._adicionar_ator(self._obstaculos, *obstaculos)
38+
pass
4139

4240
def adicionar_porco(self, *porcos):
4341
"""
4442
Adiciona porcos em uma fase
4543
4644
:param porcos:
4745
"""
48-
self._adicionar_ator(self._porcos, *porcos)
46+
pass
4947

5048
def adicionar_passaro(self, *passaros):
5149
"""
5250
Adiciona pássaros em uma fase
5351
5452
:param passaros:
5553
"""
56-
self._adicionar_ator(self._passaros, *passaros)
54+
pass
5755

5856
def acabou(self):
5957
"""
@@ -66,7 +64,7 @@ def acabou(self):
6664
6765
:return: booleano
6866
"""
69-
return not self._existe_porco_ativo() or not self._existe_passaro_ativo()
67+
return True
7068

7169
def status(self):
7270
"""
@@ -78,12 +76,8 @@ def status(self):
7876
7977
Se o jogo acabou com vitória (não existe porco ativo), retorna essa mensagem
8078
81-
:return:
79+
:return: Mensagem de status
8280
"""
83-
if not self._existe_porco_ativo():
84-
return 'Jogo em encerrado. Você ganhou!'
85-
if self._existe_passaro_ativo():
86-
return 'Jogo em andamento.'
8781
return 'Jogo em encerrado. Você perdeu!'
8882

8983
def lancar(self, angulo, tempo):
@@ -97,11 +91,7 @@ def lancar(self, angulo, tempo):
9791
:param angulo: ângulo de lançamento
9892
:param tempo: Tempo de lançamento
9993
"""
100-
for passaro in self._passaros:
101-
if not passaro.foi_lancado():
102-
passaro.lancar(angulo, tempo)
103-
return
104-
94+
pass
10595

10696
def calcular_pontos(self, tempo):
10797
"""
@@ -112,32 +102,10 @@ def calcular_pontos(self, tempo):
112102
:param tempo: tempo para o qual devem ser calculados os pontos
113103
:return: objeto do tipo Ponto
114104
"""
115-
pontos = [self._calcular_ponto_de_passaro(p, tempo) for p in self._passaros]
116-
obstaculos_e_porcos = chain(self._obstaculos, self._porcos)
117-
pontos.extend([self._transformar_em_ponto(ator) for ator in obstaculos_e_porcos])
105+
pontos=[]
106+
118107
return pontos
119108

120109
def _transformar_em_ponto(self, ator):
121110
return Ponto(ator.x, ator.y, ator.caracter)
122111

123-
def _calcular_ponto_de_passaro(self, passaro, tempo, ):
124-
passaro.calcular_posicao(tempo)
125-
for ator in chain(self._obstaculos, self._porcos):
126-
if ATIVO == passaro.status:
127-
passaro.colidir(ator, self.intervalo_de_colisao)
128-
passaro.colidir_com_chao()
129-
else:
130-
break
131-
return self._transformar_em_ponto(passaro)
132-
133-
def _existe_porco_ativo(self):
134-
return self._verificar_se_existe_ator_ativo(self._porcos)
135-
136-
def _verificar_se_existe_ator_ativo(self, atores):
137-
for a in atores:
138-
if a.status == ATIVO:
139-
return True
140-
return False
141-
142-
def _existe_passaro_ativo(self):
143-
return self._verificar_se_existe_ator_ativo(self._passaros)

0 commit comments

Comments
 (0)