Skip to content

Commit 2a5524a

Browse files
author
renzon
committed
Acrescentando testa para resetar de fase
1 parent 961ec96 commit 2a5524a

2 files changed

Lines changed: 41 additions & 13 deletions

File tree

README.md

Lines changed: 40 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -70,21 +70,27 @@ Classe base para todos atores do jogo.
7070
Método que recebe o tempo (float) como parâmetro e retorna uma tupla com 2 elementos, posição horizontal (x) como
7171
primeiro elemento e posição vertical (y) como segundo.
7272

73+
### Método resetar
74+
75+
Método que ao ser executado, seta o valor de _tempo_de_colisão para None
76+
7377
### Método status
7478

7579
O ator possui os status Ativo ou Destruido. Além disso o status deve ser dependente do tempo. Ou seja, se o ator foi
76-
destruido no tempo t, ele deve possuir status Ativo antes desse tempo e Destruido após.
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.
7781

82+
### Método colidir
83+
84+
O método colidir executa a lógica de colisão. A colisão só ocorre com atores ativos e que estejam
85+
em 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.
7889

7990
## Método caracter
8091

8192
O método caracter retorna 'A' quando o ator tem status Ativo e '+' caso contrário. Também é depende do tempo.
8293

83-
### Método colidir
84-
85-
O método colidir executa a lógica de colisão. A colisão só ocorre com atores ativos e que estejam
86-
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.
8894

8995
## Classe Obstaculo
9096

@@ -112,19 +118,41 @@ gravidade (G) constante e igual a 10 m/s^2.
112118
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
113119
de lançamento para cálculo de sua posíção. Lembrar que o tempo das fórmulas é delta_t = T_final - T_inicial
114120

115-
### Método posicao_horizontal
121+
### Método de resetar
116122

117-
Fórmula X=X0+v*cos(teta)*delta_t.
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
118125

119-
### Método posicao_vertical
120-
121-
Fórmula Y=Y0+v*sen(teta)delta_t-(G*delta_t^2)/2.
122-
123126

124127
### Método de colidir_com_chao
125128

126129
Todo pássaro que colidir com o chão (y<=0) deve ser destruído.
127130

131+
### Método foi lançado
132+
133+
Esse método deve retornar verdadadeiro se o pássaro foi lançado (tempo de lançamento é None).
134+
Caso contrário deve retornar falso
135+
136+
### Lançamentomento
137+
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.
140+
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.
142+
Nesse caso, delta_t vai ser igual ao tempo do jogo menos o tempo do lançamento.
143+
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.
146+
147+
#### Método posicao_horizontal
148+
149+
Fórmula X=X0+v*cos(teta)*delta_t.
150+
151+
#### Método posicao_vertical
152+
153+
Fórmula Y=Y0+v*sen(teta)delta_t-(G*delta_t^2)/2.
154+
155+
128156
## Classe Passaro Vermelho
129157

130158
Tipo de Pássaro que representa o pássaro vermelho. Possui velocidade de lançamento igual a 20 m/s. Seu caracter é "D".

testes/fase_testes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def teste_lancar_passaro_sem_erro_quando_nao_existe_passaro(self):
125125
self.assertFalse(passaro_amarelo.foi_lancado())
126126
fase.lancar(90, 1)
127127
fase.lancar(45, 3)
128-
fase.lancar(31, 5) # testando que lançar passaros depos de todos lançados não causa erro
128+
fase.lancar(31, 5) # testando que lançar passaros depios de todos lançados não causa erro
129129

130130
self.assertTrue(passaro_vermelho.foi_lancado())
131131
self.assertEqual(math.radians(90), passaro_vermelho._angulo_de_lancamento)

0 commit comments

Comments
 (0)