Skip to content

Commit 0bc7e97

Browse files
author
renzon
committed
Retoques finais
1 parent 795c03b commit 0bc7e97

2 files changed

Lines changed: 26 additions & 18 deletions

File tree

README.md

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Um vídeo fala mais que 1000 palavras: [Python Birds](https://www.youtube.com/wa
1111

1212
Instalar [Python 3](https://www.python.org/download/).
1313

14-
Baixar a versão apenas a [estrutura do projeto](https://github.com/pythonprobr/pythonbirds/archive/diversao.zip)
14+
Baixar a versão contendo apenas a [estrutura do projeto](https://github.com/pythonprobr/pythonbirds/archive/diversao.zip)
1515

1616
Os testes se encontram dentro do pacote "testes" e servem para definir a dinâmica das classes. Para rodar todos testes, execute
1717

@@ -30,10 +30,10 @@ Após o desenvolvimento é possível emular um jogo que termina em vitória roda
3030

3131
É possível jogar a fase rodando:
3232

33-
python python_birds.py
33+
python placa_grafica_tkinter.py
3434

35-
Para jogar, aperte enter, digite o ângulo de lançamento e aperte enter novamente.
36-
Demonstração no vídeo:
35+
Para jogar, utilize as setas para cima e para baixo. Para lançar, utilize a tecla enter ou espaço.
36+
Demonstração nos vídeos:
3737

3838
[Python Birds](https://www.youtube.com/watch?v=b899h0lNd7U&list=PLA05yVJtRWYTm0sIa6n56UpCjCsR5ekla)
3939

@@ -49,17 +49,21 @@ Contém classes respectivas a fase e ponto do plano cartesiano
4949

5050
Contém lógica para rodar jogo e exibir no console.
5151

52+
## script placa_grafica_tkinter.py
53+
54+
Contém lógica para rodar jogo e em uma janela.
55+
5256
# Simplificação do Jogo
5357

54-
1. Atores são pontos (um caracter) no plano cartesiano.
55-
2. A velocidade dos pontos e pequena, de tal forma que a cada passo os pontos se movam apenas para pontos vizinhos.
56-
3. A colisão entre pontos ocorre quando eles estão em ponto vizinho
58+
1. Atores são pontos no plano cartesiano.
59+
2. A velocidade dos pontos e pequena, de tal forma que a cada passo os atores se movam apenas para pontos vizinhos.
60+
3. A colisão entre pontos ocorre quando eles estão em ponto vizinho, de acordo com valor de intervalo.
5761

58-
A seguir segue a especificação detalhada do jogo.
62+
A seguir é apresentada a especificação detalhada do jogo.
5963

6064
## Classe Ator
6165

62-
Classe base para todos os atores do jogo.
66+
Classe base para todos atores do jogo.
6367

6468
### Método calcular_posicao
6569

@@ -72,14 +76,15 @@ O ator possui os status Ativo ou Destruido. Além disso o status deve ser depend
7276
destruido no tempo t, ele deve possuir status Ativo antes desse tempo e Destruido após.
7377

7478

75-
## Método sinal
79+
## Método caracter
7680

77-
O método sinal retorna 'A' quando o ator tem status Ativo e '+' caso contrário. Também é depende do tempo.
81+
O método caracter retorna 'A' quando o ator tem status Ativo e '+' caso contrário. Também é depende do tempo.
7882

7983
### Método colidir
8084

81-
O método colidir deve ser executada para executar a ação de colisão. Colisão só ocorre com atores ativos e que estejam
85+
O método colidir executa a lógica de colisão. A colisão só ocorre com atores ativos e que estejam
8286
em pontos vizinhos. O ator deve guardar o tempo de colisão para calcular corretamente seu status.
87+
Além disso, um intervalo é recebido como parâmetro indicando qual a tolerância para considerar um ponto vizinho.
8388

8489
## Classe Obstaculo
8590

@@ -105,7 +110,7 @@ gravidade (G) constante e igual a 10 m/s^2.
105110
### Método lancar
106111

107112
O método lançar recebe o ângulo, em graus, que será feito o lançamento. Cada pássaro deve armazenar esse valor e o tempo
108-
de lançamento para cálculo de sua posíção. Lembrar que o tempo das fórmulas é delta_t = Tfinal - Tinicial
113+
de lançamento para cálculo de sua posíção. Lembrar que o tempo das fórmulas é delta_t = T_final - T_inicial
109114

110115
### Método posicao_horizontal
111116

@@ -116,9 +121,9 @@ Fórmula X=X0+v*cos(teta)*delta_t.
116121
Fórmula Y=Y0+v*sen(teta)delta_t-(G*delta_t^2)/2.
117122

118123

119-
### Método de colidir_com_chaoo
124+
### Método de colidir_com_chao
120125

121-
Toda vez que o pássaro colidir com o chão (y=0) ele deve ser destruido.
126+
Todo pássaro que colidir com o chão (y<=0) deve ser destruído.
122127

123128
## Classe Passaro Vermelho
124129

@@ -149,7 +154,7 @@ Método que adiciona um ou mais pássaros na fase
149154
Método que recebe o tempo do jogo e retorna verdadeiro (True) se o jogo acabou e (False) caso contrário.
150155
O jogo pode acabar por duas razôes:
151156

152-
1. Todos porcos foram destruidos
157+
1. Todos porcos foram destruídos
153158
2. Não há mais pássaros a serem lançados
154159

155160
### Método status

testes/atores_testes.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ def teste_ator_posicao(self):
2626
ator = Ator(0.6, 2.1)
2727
self.assertTupleEqual((1, 2), ator.calcular_posicao(3.14))
2828

29-
def assert_colisao_atores_ativos(self, ator, ator2):
29+
def assert_colisao_atores_ativos(self, ator, ator2, intervalo=1):
3030
tempo_da_colisao = 2
3131
self.assertEqual(ator.status(tempo_da_colisao), ATIVO)
3232
self.assertEqual(ator2.status(tempo_da_colisao), ATIVO)
33-
ator.colidir(ator2, tempo_da_colisao)
33+
ator.colidir(ator2, tempo_da_colisao, intervalo)
3434
self.assertEqual(ator2.status(tempo_da_colisao), DESTRUIDO)
3535
self.assertEqual(ator.status(tempo_da_colisao), DESTRUIDO)
3636

@@ -53,6 +53,9 @@ def teste_colisao_entre_atores_ativos(self):
5353
self.assert_colisao_atores_ativos(Ator(2, 2), Ator(1, 2))
5454
self.assert_colisao_atores_ativos(Ator(2, 2), Ator(1, 3))
5555

56+
def teste_colisao_entre_atores_ativos_com_intervalo(self):
57+
self.assert_colisao_atores_ativos(Ator(2, 2), Ator(2, 4), 2)
58+
5659
def teste_nao_colisao_entre_atores_ativos(self):
5760
self.assert_nao_colisao(Ator(2, 2), Ator(2, 4))
5861
self.assert_nao_colisao(Ator(2, 2), Ator(3, 4))

0 commit comments

Comments
 (0)