Skip to content

Commit 3b8265b

Browse files
author
renzon
committed
1 parent a110c7b commit 3b8265b

File tree

3 files changed

+38
-32
lines changed

3 files changed

+38
-32
lines changed

fase.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
from itertools import chain
33
from atores import ATIVO
44

5+
# Status possíveis do jogo
6+
7+
VITORIA = 'VITORIA'
8+
DERROTA = 'DERROTA'
9+
EM_ANDAMENTO = 'EM_ANDAMENTO'
10+
511

612
class Ponto():
713
def __init__(self, x, y, caracter):
@@ -55,18 +61,18 @@ def adicionar_passaro(self, *passaros):
5561
"""
5662
self._adicionar_ator(self._passaros, *passaros)
5763

58-
def acabou(self):
59-
"""
60-
Método que retorna verdadeiro se o jogo acabou e falso caso contrário
61-
62-
O jogo pode acabar por dois motivos:
63-
64-
1. Não existem mais porcos ativos no jogo
65-
2. Não existem mais pássaros ativos no jogo
66-
67-
:return: booleano
68-
"""
69-
return not self._existe_porco_ativo() or not self._existe_passaro_ativo()
64+
# def acabou(self):
65+
# """
66+
# Método que retorna verdadeiro se o jogo acabou e falso caso contrário
67+
#
68+
# O jogo pode acabar por dois motivos:
69+
#
70+
# 1. Não existem mais porcos ativos no jogo
71+
# 2. Não existem mais pássaros ativos no jogo
72+
#
73+
# :return: booleano
74+
# """
75+
# return self.status() != EM_ANDAMENTO
7076

7177
def status(self):
7278
"""
@@ -81,10 +87,10 @@ def status(self):
8187
:return:
8288
"""
8389
if not self._existe_porco_ativo():
84-
return 'Jogo em encerrado. Você ganhou!'
90+
return VITORIA
8591
if self._existe_passaro_ativo():
86-
return 'Jogo em andamento.'
87-
return 'Jogo em encerrado. Você perdeu!'
92+
return EM_ANDAMENTO
93+
return DERROTA
8894

8995
def lancar(self, angulo, tempo):
9096
"""
@@ -128,7 +134,7 @@ def _calcular_ponto_de_passaro(self, passaro, tempo, ):
128134
passaro.colidir_com_chao()
129135
else:
130136
break
131-
return self._transformar_em_ponto(passaro)
137+
return self._transformar_em_ponto(passaro)
132138

133139
def _existe_porco_ativo(self):
134140
return self._verificar_se_existe_ator_ativo(self._porcos)

placa_grafica_tkinter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from os import path
77
import atores
88

9-
from fase import Fase
9+
from fase import Fase, EM_ANDAMENTO
1010
from atores import PassaroVermelho, PassaroAmarelo, Porco, Obstaculo
1111

1212
ALTURA_DA_TELA = 600 # px
@@ -57,7 +57,7 @@ def _animar():
5757
if tempo <= 0:
5858
tempo = 0
5959
delta_t /= -multiplicador_rebobinar
60-
if fase.acabou():
60+
if fase.status()!=EM_ANDAMENTO:
6161
camada_de_atores.create_image(162, 55, image=PYTHONBIRDS_LOGO, anchor=NW)
6262
camada_de_atores.create_image(54, 540, image=MENU, anchor=NW)
6363
if 'ganhou' in fase.status():

testes/fase_testes.py

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
sys.path.append(project_dir)
1818

1919
from atores import Obstaculo, Porco, PassaroVermelho, PassaroAmarelo, DESTRUIDO, ATIVO
20-
from fase import Fase, Ponto
20+
from fase import Fase, Ponto, EM_ANDAMENTO, VITORIA, DERROTA
2121

2222

2323
class FaseTestes(TestCase):
@@ -57,7 +57,7 @@ def teste_adicionar_passaro(self):
5757

5858
def teste_acabou_sem_porcos(self):
5959
fase = Fase()
60-
self.assertTrue(fase.acabou())
60+
self.assertEqual(VITORIA, fase.status())
6161

6262
def teste_acabou_com_porcos_e_passaros(self):
6363
fase = Fase()
@@ -66,52 +66,52 @@ def teste_acabou_com_porcos_e_passaros(self):
6666
fase.adicionar_porco(*porcos)
6767
fase.adicionar_passaro(*passaros)
6868

69-
self.assertFalse(fase.acabou())
69+
self.assertEqual(EM_ANDAMENTO, fase.status())
7070

7171
# colidindo cada passaro com um porco no tempo 3
7272
for passaro, porco in zip(passaros, porcos):
7373
passaro.colidir(porco, 3)
7474

75-
self.assertTrue(fase.acabou())
75+
self.assertEqual(VITORIA, fase.status())
7676

7777
fase.adicionar_obstaculo(Obstaculo())
78-
self.assertTrue(fase.acabou(), 'Obstáculo não interfere no fim do jogo')
78+
self.assertEqual(VITORIA, fase.status(), 'Obstáculo não interfere no fim do jogo')
7979

8080
fase.adicionar_porco(Porco())
81-
self.assertTrue(fase.acabou(), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar')
81+
self.assertEqual(DERROTA, fase.status(), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar')
8282

8383
fase.adicionar_passaro(PassaroAmarelo())
84-
self.assertFalse(fase.acabou(), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar')
84+
self.assertEqual(EM_ANDAMENTO, fase.status(), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar')
8585

8686
def teste_status(self):
8787
fase = Fase()
8888
porcos = [Porco(1, 1) for i in range(2)]
8989
passaros = [PassaroAmarelo(1, 1) for i in range(2)]
9090
fase.adicionar_porco(*porcos)
9191
fase.adicionar_passaro(*passaros)
92-
self.assertEqual('Jogo em andamento.', fase.status())
92+
self.assertEqual(EM_ANDAMENTO, fase.status())
9393

9494
for passaro, porco in zip(passaros, porcos):
9595
passaro.colidir(porco, 3)
9696

97-
self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(),
97+
self.assertEqual(VITORIA, fase.status(),
9898
'Sem porcos ativos o jogo deveria terminar com vitória')
9999

100100
fase.adicionar_obstaculo(Obstaculo())
101-
self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(),
101+
self.assertEqual(VITORIA, fase.status(),
102102
'Obstáculo não interfere para definir vitória')
103103

104104
porco = Porco()
105105
fase.adicionar_porco(porco)
106-
self.assertEqual('Jogo em encerrado. Você perdeu!', fase.status(),
106+
self.assertEqual(DERROTA, fase.status(),
107107
'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar em derrota')
108108

109109
fase.adicionar_passaro(PassaroAmarelo())
110-
self.assertEqual('Jogo em andamento.', fase.status(),
110+
self.assertEqual(EM_ANDAMENTO, fase.status(),
111111
'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar')
112112

113113
porco.colidir(porco, 3)
114-
self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(),
114+
self.assertEqual(VITORIA, fase.status(),
115115
'Sem porco ativo, o jogo deveria acabar com vitória')
116116

117117
def teste_lancar_passaro_sem_erro_quando_nao_existe_passaro(self):
@@ -202,7 +202,7 @@ def teste_calcular_pontos(self):
202202

203203
self.assertListEqual(expected, fase_exemplo.calcular_pontos(8.5))
204204

205-
self.assertTrue(fase_exemplo.acabou())
205+
self.assertEqual(VITORIA, fase_exemplo.status())
206206

207207

208208
def criar_fase_exemplo(multiplicador=1):

0 commit comments

Comments
 (0)