11Python Birds
22===========
33
4+ Essa versão é a mais simples. Ela não contém replay nem reset, de forma que o jogo não pode retroceder.
5+
6+ Para versão mais complexa, acesse a branch [ master] ( https://github.com/pythonprobr/pythonbirds/tree/master )
7+
48Projeto para Ensino de Programação Orientadas a Objetos em Python.
59
610A versão utilizada para desenvolvimento foi Python 3.4
@@ -11,20 +15,20 @@ Um vídeo fala mais que 1000 palavras: [Python Birds](https://www.youtube.com/wa
1115
1216Instalar [ Python 3] ( https://www.python.org/download/ ) .
1317
14- Baixar a versão contendo apenas a [ estrutura do projeto] ( https://github.com/pythonprobr/pythonbirds/archive/diversao.zip )
18+ Baixar o zip do projeto (botão Download Zip)
1519
1620Os testes se encontram dentro do pacote "testes" e servem para definir a dinâmica das classes. Para rodar todos testes, execute
1721
1822 python executor_de_testes.py
1923
20- Explicação detalhada sobre classes e métodos se encontram em [ Simplificação do Jogo ] ( #simplifica%C3%A7%C3%A3o-do-jogo )
24+ Explicação detalhada sobre classes e métodos se encontram nos scripts atores.py e fase.py
2125
2226## Ordem de desenvolvimento
2327
2428A ordem preferida é começar pelos atores, seguindo a ordem dos testes presentes no script atores_testes.py.
2529Depois passar para a fase_teste.py, onde é implementada uma fase.
2630
27- Após o desenvolvimento é possível emular um jogo que termina em vitória rodando:
31+ É possível emular um jogo que termina em vitória rodando:
2832
2933 python fase_testes.py
3034
@@ -70,27 +74,10 @@ Classe base para todos atores do jogo.
7074Método que recebe o tempo (float) como parâmetro e retorna uma tupla com 2 elementos, posição horizontal (x) como
7175primeiro elemento e posição vertical (y) como segundo.
7276
73- ### Método resetar
74-
75- Método que ao ser executado, seta o valor de _ tempo_de_colisão para None
76-
77- ### Método status
78-
79- O ator possui os status Ativo ou Destruido. Além disso o status deve ser dependente do tempo. Ou seja, se o ator foi
80- destruido no tempo 1, ele deve possuir status Ativo antes desse tempo, como 0.9, e Destruido após esse tempo, como em tempo 1.1.
81-
8277### Método colidir
8378
8479O método colidir executa a lógica de colisão. A colisão só ocorre com atores ativos e que estejam
8580em pontos vizinhos.
86- 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.
88- Por padrão, seu valor é 1.
89-
90- ## Método caracter
91-
92- O método caracter retorna 'A' quando o ator tem status Ativo e '+' caso contrário. Também é depende do tempo.
93-
9481
9582## Classe Obstaculo
9683
@@ -111,38 +98,31 @@ representação é a o caracter "@".
11198
11299Classe base de todos os passáros. Cada tipo possui uma velocidade de lançamento (v). No lançamento o jogador escolhe o
113100ângulo (teta), em graus, no qual o passáro deve ser lançado. O lançamento respeita as regras de lançamento oblíquo com
114- gravidade (G ) constante e igual a 10 m/s^2.
101+ gravidade (GRAVIDADE ) constante e igual a 10 m/s^2.
115102
116103### Método lancar
117104
118105O 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
119106de lançamento para cálculo de sua posíção. Lembrar que o tempo das fórmulas é delta_t = T_final - T_inicial
120107
121- ### Método de resetar
122-
123- O método resetar deve chamar o método resetar de Ator.
124- Além disso, deve setar como Nome os parầmetros de tempo de lançamento e ângulo de lançamento
125-
126108
127109### Método de colidir_com_chao
128110
129111Todo pássaro que colidir com o chão (y<=0) deve ser destruído.
130112
131- ### Método foi lançado
113+ ### Método foi_lançado
132114
133115Esse método deve retornar verdadadeiro se o pássaro foi lançado (tempo de lançamento é None).
134116Caso contrário deve retornar falso
135117
136- ### Lançamentomento
118+ ### Lançamento
137119
138- Se o pássaro ainda não foi lançado, ou se o tempo de jogo é menor que o tempo de lançamento,
139- O pássaro deve permanecer na posição inicial.
120+ Se o pássaro ainda não foi lançado, o pássaro deve permanecer na posição inicial.
140121
141- Calso tenha sido lançado e seu status esteja ativo, sua posição deve ser calculada de acordo com o lançamento oblíquo.
122+ Caso tenha sido lançado e seu status esteja ativo, sua posição deve ser calculada de acordo com o lançamento oblíquo.
142123Nesse caso, delta_t vai ser igual ao tempo do jogo menos o tempo do lançamento.
143124
144- Caso contrário, ele deve retornar a posição onde colidiu. Para isso, pasta
145- calcular o ponto em que o pássaro estava no tempo da colisão.
125+ Caso contrário, ele deve retornar a posição onde colidiu.
146126
147127#### Método posicao_horizontal
148128
@@ -195,7 +175,8 @@ Recebe o tempo como parâmetro e retorna mensagem com status do jogo.
195175
196176### Método lancar
197177
198- Recebe o ângulo e o tempo do lançamento. Deve delegar o lançamento ao primeiro pássaro ativo da lista de pássaros.
178+ Recebe o ângulo e o tempo do lançamento. Deve delegar o lançamento ao primeiro pássaro ativo da lista de pássaros que
179+ ainda não foi lançado.
199180
200181### Método calcular_pontos
201182
0 commit comments