コード例 #1
0
    def teste_status(self):
        fase = Fase()
        porcos = [Porco(1, 1) for i in range(2)]
        passaros = [PassaroAmarelo(1, 1) for i in range(2)]
        fase.adicionar_porco(*porcos)
        fase.adicionar_passaro(*passaros)
        self.assertEqual('Jogo em andamento.', fase.status(0))
        self.assertEqual('Jogo em andamento.', fase.status(2.9))
        self.assertEqual('Jogo em andamento.', fase.status(3))

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

        self.assertEqual('Jogo em andamento.', fase.status(0))
        self.assertEqual('Jogo em andamento.', fase.status(2.9))
        self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(3),
                         'Sem porcos ativos o jogo deveria terminar com vitória')

        fase.adicionar_obstaculo(Obstaculo())
        self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(3),
                         'Obstáculo não interfere para definir vitória')

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

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

        porco.colidir(porco, 3)
        self.assertEqual('Jogo em encerrado. Você ganhou!', fase.status(3),
                         'Sem porco ativo, o jogo deveria acabar com vitória')
コード例 #2
0
    def teste_status(self):
        fase = Fase()
        porcos = [Porco(1, 1) for i in range(2)]
        passaros = [PassaroAmarelo(1, 1) for i in range(2)]
        fase.adicionar_porco(*porcos)
        fase.adicionar_passaro(*passaros)
        self.assertEqual(EM_ANDAMENTO, fase.status())

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

        self.assertEqual(VITORIA, fase.status(),
                         'Sem porcos ativos o jogo deveria terminar com vitória')

        fase.adicionar_obstaculo(Obstaculo())
        self.assertEqual(VITORIA, fase.status(),
                         'Obstáculo não interfere para definir vitória')

        porco = Porco()
        fase.adicionar_porco(porco)
        self.assertEqual(DERROTA, fase.status(),
                         'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar em derrota')

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

        porco.colidir(porco, 3)
        self.assertEqual(VITORIA, fase.status(),
                         'Sem porco ativo, o jogo deveria acabar com vitória')
コード例 #3
0
    def teste_acabou_com_porcos_e_passaros(self):
        fase = Fase()
        porcos = [Porco(1, 1) for i in range(2)]  # criando 2 porcos
        passaros = [PassaroAmarelo(1, 1)
                    for i in range(2)]  # criando 2 pássaros
        fase.adicionar_porco(*porcos)
        fase.adicionar_passaro(*passaros)

        self.assertEqual(EM_ANDAMENTO, fase.status)

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

        self.assertEqual(VITORIA, fase.status)

        fase.adicionar_obstaculo(Obstaculo())
        self.assertEqual(VITORIA, fase.status,
                         'Obstáculo não interfere no fim do jogo')

        fase.adicionar_porco(Porco())
        self.assertEqual(
            DERROTA, fase.status,
            'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar')

        fase.adicionar_passaro(PassaroAmarelo())
        self.assertEqual(
            EM_ANDAMENTO, fase.status,
            'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar'
        )
コード例 #4
0
    def teste_acabou_com_porcos_e_passaros(self):
        fase = Fase()
        porcos = [Porco(1, 1) for i in range(2)]  # criando 2 porcos
        passaros = [PassaroAmarelo(1, 1) for i in range(2)]  # criando 2 pássaros
        fase.adicionar_porco(*porcos)
        fase.adicionar_passaro(*passaros)

        self.assertFalse(fase.acabou(0))
        self.assertFalse(fase.acabou(2.9))
        self.assertFalse(fase.acabou(3))

        # colidingo cada passaro com um porco no tempo 3
        for passaro, porco in zip(passaros, porcos):
            passaro.colidir(porco, 3)

        self.assertFalse(fase.acabou(0))
        self.assertFalse(fase.acabou(2.9))
        self.assertTrue(fase.acabou(3))

        fase.adicionar_obstaculo(Obstaculo())
        self.assertTrue(fase.acabou(3), 'Obstáculo não interfere no fim do jogo')

        fase.adicionar_porco(Porco())
        self.assertTrue(fase.acabou(3), 'Com Porco ativo e sem pássaro para lançar, o jogo deveria acabar')

        fase.adicionar_passaro(PassaroAmarelo())
        self.assertFalse(fase.acabou(3), 'Com Porco ativo e com pássaro para lançar, o jogo não deveria acabar')
コード例 #5
0
 def teste_posicao_antes_do_lancamento(self):
     passaro_amarelo = PassaroAmarelo(1, 1)
     passaro_amarelo.lancar(90, 2)  # passaro lancado a 90 graus no tempo 2 segundos
     #
     for t in range(20):
         t /= 10
         self.assertEqual((1, 1), passaro_amarelo.calcular_posicao(t),
                          'Não deveria se mover no tempo %s < 2 segundtos' % t)
コード例 #6
0
 def teste_posicao_antes_do_lancamento(self):
     passaro_amarelo = PassaroAmarelo(1, 1)
     passaro_amarelo.lancar(
         90, 2)  # passaro lancado a 90 graus no tempo 2 segundos
     #
     for t in range(20):
         t /= 10
         self.assertEqual(
             (1, 1), passaro_amarelo.calcular_posicao(t),
             'Não deveria se mover no tempo %s < 2 segundtos' % t)
コード例 #7
0
 def teste_intervalo_de_colisao_nao_padrao(self):
     '''
     Método que testa se o intervalo de colisão da Fase é repassado aos atores. valor testado: 31
     '''
     fase = Fase(30)
     passaro = PassaroAmarelo(1, 1)
     fase.adicionar_passaro(passaro)
     porco = Porco(31, 31)
     fase.adicionar_porco(porco)
     fase.calcular_pontos(0)
     self.assertEqual(DESTRUIDO, passaro.status(0))
     self.assertEqual(DESTRUIDO, porco.status(0))
コード例 #8
0
    def teste_lacamento_vertical(self):
        passaro_amarelo = PassaroAmarelo(1, 1)
        passaro_amarelo.lancar(
            90, 2)  # passaro lancado a 90 graus no tempo 2 segundos

        # função auxiliar que mantém x fixo com valor 1, status Ativo, variando apenas o tempo e a posição y
        def assert_vertical(y_local, tempo):
            self.assert_passaro_posicao(1, y_local, ATIVO, passaro_amarelo,
                                        tempo)

        # subindo

        assert_vertical(1, 2.0)
        assert_vertical(1, 2.0)
        assert_vertical(1, 2.01)
        assert_vertical(2, 2.02)
        assert_vertical(2, 2.03)
        assert_vertical(2, 2.04)
        assert_vertical(2, 2.05)

        # descendo

        assert_vertical(46, 5.26)
        assert_vertical(46, 5.27)
        assert_vertical(46, 5.279999999999999)
        assert_vertical(46, 5.29)
        assert_vertical(46, 5.3)
        assert_vertical(46, 5.3100000000000005)
        assert_vertical(45, 5.32)
        assert_vertical(45, 5.33)
        assert_vertical(45, 5.34)
        assert_vertical(45, 5.35)
        assert_vertical(45, 5.359999999999999)
        assert_vertical(45, 5.37)
        assert_vertical(45, 5.38)
        assert_vertical(45, 5.390000000000001)
        assert_vertical(45, 5.4)
        assert_vertical(45, 5.41)
        assert_vertical(45, 5.42)
        assert_vertical(45, 5.43)
        assert_vertical(45, 5.4399999999999995)
        assert_vertical(45, 5.45)
        assert_vertical(45, 5.46)
        assert_vertical(45, 5.470000000000001)
        assert_vertical(45, 5.48)

        # preparando para impacto no chão
        assert_vertical(1, 8.0)
        assert_vertical(1, 8.01)

        # colisão
        self.assert_passaro_posicao(1, 0, DESTRUIDO, passaro_amarelo, 8.02)
コード例 #9
0
def criar_fase_exemplo(multiplicador=1):
    fase_exemplo = Fase(1 if multiplicador == 1 else 32)
    passaros = [PassaroVermelho(3 * multiplicador, 3 * multiplicador),
                PassaroAmarelo(3 * multiplicador, 3 * multiplicador),
                PassaroAmarelo(3 * multiplicador, 3 * multiplicador)]
    porcos = [Porco(78 * multiplicador, multiplicador), Porco(70 * multiplicador, multiplicador)]
    obstaculos = [Obstaculo(31 * multiplicador, 10 * multiplicador)]

    fase_exemplo.adicionar_passaro(*passaros)
    fase_exemplo.adicionar_porco(*porcos)
    fase_exemplo.adicionar_obstaculo(*obstaculos)

    return fase_exemplo
コード例 #10
0
 def teste_colisao(self):
     passaro_amarelo = PassaroAmarelo(1, 1)
     passaro_amarelo.lancar(45, 2)  # passaro lancado a 45 graus no tempo 2 segundos
     porco = Porco(4, 4)
     passaro_amarelo.calcular_posicao(2.12)  # tempo exato quanto o passário chega em 4,3
     passaro_amarelo.colidir(porco, 2.12)
     self.assertEqual(DESTRUIDO, passaro_amarelo.status(2.12))
     # Deve ficar parado onde colidiu para qualquer tempo maior que o de colisão
     self.assertTupleEqual((4, 3), passaro_amarelo.calcular_posicao(2.13))
     self.assertTupleEqual((4, 3), passaro_amarelo.calcular_posicao(1000))
コード例 #11
0
    def teste_lacamento_vertical(self):
        passaro_amarelo = PassaroAmarelo(1, 1)
        passaro_amarelo.lancar(90, 2)  # passaro lancado a 90 graus no tempo 2 segundos

        # função auxiliar que mantém x fixo com valor 1, status Ativo, variando apenas o tempo e a posição y
        def assert_vertical(y_local, tempo):
            self.assert_passaro_posicao(1, y_local, ATIVO, passaro_amarelo, tempo)

        # subindo

        assert_vertical(1, 2.0)
        assert_vertical(1, 2.0)
        assert_vertical(1, 2.01)
        assert_vertical(2, 2.02)
        assert_vertical(2, 2.03)
        assert_vertical(2, 2.04)
        assert_vertical(2, 2.05)

        # descendo

        assert_vertical(46, 5.26)
        assert_vertical(46, 5.27)
        assert_vertical(46, 5.279999999999999)
        assert_vertical(46, 5.29)
        assert_vertical(46, 5.3)
        assert_vertical(46, 5.3100000000000005)
        assert_vertical(45, 5.32)
        assert_vertical(45, 5.33)
        assert_vertical(45, 5.34)
        assert_vertical(45, 5.35)
        assert_vertical(45, 5.359999999999999)
        assert_vertical(45, 5.37)
        assert_vertical(45, 5.38)
        assert_vertical(45, 5.390000000000001)
        assert_vertical(45, 5.4)
        assert_vertical(45, 5.41)
        assert_vertical(45, 5.42)
        assert_vertical(45, 5.43)
        assert_vertical(45, 5.4399999999999995)
        assert_vertical(45, 5.45)
        assert_vertical(45, 5.46)
        assert_vertical(45, 5.470000000000001)
        assert_vertical(45, 5.48)

        # preparando para impacto no chão
        assert_vertical(1, 8.0)
        assert_vertical(1, 8.01)

        # colisão
        self.assert_passaro_posicao(1, 0, DESTRUIDO, passaro_amarelo, 8.02)
コード例 #12
0
def criar_fase_exemplo():
    fase_exemplo = Fase()
    passaros = [PassaroVermelho(3, 3), PassaroAmarelo(3, 3), PassaroAmarelo(3, 3)]
    porcos = [Porco(78, 1), Porco(70, 1)]
    obstaculos = [Obstaculo(31, 10)]

    fase_exemplo.adicionar_passaro(*passaros)
    fase_exemplo.adicionar_porco(*porcos)
    fase_exemplo.adicionar_obstaculo(*obstaculos)

    fase_exemplo.lancar(45, 1)
    fase_exemplo.lancar(63, 3)
    fase_exemplo.lancar(23, 4)

    for i in range(86):
        fase_exemplo.calcular_pontos(i / 10)
    return fase_exemplo
コード例 #13
0
    def teste_adicionar_passaro(self):
        fase = Fase()
        self.assertListEqual([], fase._passaros)
        passaro = PassaroVermelho()
        fase.adicionar_passaro(passaro)
        self.assertListEqual([passaro], fase._passaros)

        passaro1, passaro2 = PassaroVermelho(), PassaroAmarelo()
        fase.adicionar_passaro(passaro1, passaro2)
        self.assertListEqual([passaro, passaro1, passaro2], fase._passaros)
コード例 #14
0
    def teste_colisao(self):
        passaro_amarelo = PassaroAmarelo(1, 1)
        passaro_amarelo.lancar(
            45, 2)  # passaro lancado a 45 graus no tempo 2 segundos
        porco = Porco(4, 4)
        x_calculado, y_calculado = passaro_amarelo.calcular_posicao(2.12)
        self.assertEqual(4, x_calculado)
        self.assertEqual(3, y_calculado)

        passaro_amarelo.colidir(porco, 2.12)
        self.assertEqual(DESTRUIDO, passaro_amarelo.status(2.12))
        # Deve ficar parado onde colidiu para qualquer tempo maior ou igual que o de colisão
        x_calculado, y_calculado = passaro_amarelo.calcular_posicao(2.12)
        self.assertEqual(4, x_calculado)
        self.assertEqual(3, y_calculado)

        x_calculado, y_calculado = passaro_amarelo.calcular_posicao(1000)
        self.assertEqual(4, x_calculado)
        self.assertEqual(3, y_calculado)
コード例 #15
0
    def teste_colisao(self):
        passaro_amarelo = PassaroAmarelo(1, 1)
        passaro_amarelo.lancar(45, 2)  # passaro lancado a 45 graus no tempo 2 segundos
        porco = Porco(4, 4)
        x_calculado, y_calculado = passaro_amarelo.calcular_posicao(2.12)
        self.assertEqual(4, x_calculado)
        self.assertEqual(3, y_calculado)

        passaro_amarelo.colidir(porco, 2.12)
        self.assertEqual(DESTRUIDO, passaro_amarelo.status(2.12))
        # Deve ficar parado onde colidiu para qualquer tempo maior ou igual que o de colisão
        x_calculado, y_calculado = passaro_amarelo.calcular_posicao(2.12)
        self.assertEqual(4, x_calculado)
        self.assertEqual(3, y_calculado)

        x_calculado, y_calculado = passaro_amarelo.calcular_posicao(1000)
        self.assertEqual(4, x_calculado)
        self.assertEqual(3, y_calculado)
コード例 #16
0
    def teste_lancar_passaro_sem_erro_quando_nao_existe_passaro(self):
        passaro_vermelho, passaro_amarelo = PassaroVermelho(1, 1), PassaroAmarelo(1, 1)
        fase = Fase()
        fase.adicionar_passaro(passaro_vermelho, passaro_amarelo)
        self.assertFalse(passaro_vermelho.foi_lancado())
        self.assertFalse(passaro_amarelo.foi_lancado())
        fase.lancar(90, 1)
        fase.lancar(45, 3)
        fase.lancar(31, 5)  # testando que lançar passaros depios de todos lançados não causa erro

        self.assertTrue(passaro_vermelho.foi_lancado())
        self.assertEqual(math.radians(90), passaro_vermelho._angulo_de_lancamento)
        self.assertEqual(1, passaro_vermelho._tempo_de_lancamento)

        self.assertTrue(passaro_amarelo.foi_lancado())
        self.assertEqual(math.radians(45), passaro_amarelo._angulo_de_lancamento)
        self.assertEqual(3, passaro_amarelo._tempo_de_lancamento)
コード例 #17
0
    def teste_lacamento_vertical(self):
        """
        Tests de lançamento vertical. Nele, o passaro só se move verticalmente e sua posição y se matém contanstante
        :return:
        """
        passaro_amarelo = PassaroAmarelo(1, 1)
        passaro_amarelo.lancar(
            90, 2)  # passaro lancado a 90 graus no tempo 2 segundos

        # subindo

        self.assert_posicao_vertical(1, 2.0, passaro_amarelo)
        self.assert_posicao_vertical(1, 2.01, passaro_amarelo)
        self.assert_posicao_vertical(2, 2.02, passaro_amarelo)
        self.assert_posicao_vertical(2, 2.03, passaro_amarelo)
        self.assert_posicao_vertical(2, 2.04, passaro_amarelo)
        self.assert_posicao_vertical(2, 2.05, passaro_amarelo)

        # descendo

        self.assert_posicao_vertical(46, 5.26, passaro_amarelo)
        self.assert_posicao_vertical(46, 5.27, passaro_amarelo)
        self.assert_posicao_vertical(46, 5.279999999999999, passaro_amarelo)
        self.assert_posicao_vertical(46, 5.29, passaro_amarelo)
        self.assert_posicao_vertical(46, 5.3, passaro_amarelo)
        self.assert_posicao_vertical(46, 5.3100000000000005, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.32, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.33, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.34, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.35, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.359999999999999, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.37, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.38, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.390000000000001, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.4, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.41, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.42, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.43, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.4399999999999995, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.45, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.46, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.470000000000001, passaro_amarelo)
        self.assert_posicao_vertical(45, 5.48, passaro_amarelo)

        # preparando para impacto no chão
        self.assert_posicao_vertical(1, 8.0, passaro_amarelo)
        self.assert_posicao_vertical(1, 8.01, passaro_amarelo)

        # colisão
        self.assert_posicao_vertical(0, 8.04, passaro_amarelo)
        passaro_amarelo.colidir_com_chao()
        self.assertEqual(DESTRUIDO, passaro_amarelo.status)
コード例 #18
0
 def teste_status(self):
     passaro_amarelo = PassaroAmarelo(1, 1)
     self.assertEqual('A', passaro_amarelo.caracter())
     outro_ator_na_mesma_posicao = Ator()
     passaro_amarelo.colidir(outro_ator_na_mesma_posicao)
     self.assertEqual('a', passaro_amarelo.caracter())
コード例 #19
0
 def teste_colisao_com_chao(self):
     for i in range(30):
         passaro = PassaroAmarelo(i, 0)
         passaro.colidir_com_chao(3)
         self.assertEqual(DESTRUIDO, passaro.status(3),
                          'Deve colidir com chão sempre que y=0')
コード例 #20
0
project_dir = path.dirname(__file__)
project_dir = path.join('..')
sys.path.append(project_dir)

from atores import PassaroAmarelo, PassaroVermelho, Obstaculo, Porco
from fase import Fase
from placa_grafica_tkinter import rodar_fase
from random import randint

if __name__ == '__main__':
    fase = Fase(intervalo_de_colisao=32)


    # Adicionar Pássaros Amarelos
    for i in range(80):
        fase.adicionar_passaro(PassaroAmarelo(30, 30))


    # Obstaculos
    theta = 270
    h = 12
    k = 7
    step = 32
    r = 50

    while theta < 480:
        x = 600 + (h + r * math.cos(theta))
        y = (k + r * math.sin(theta))
        fase.adicionar_obstaculo(Obstaculo(x, y))
        theta += 32
コード例 #21
0
    tela.after(passo, _animar)


def rodar_fase(fase):
    root.title("Python Birds")
    root.geometry("800x600")
    root.resizable(0, 0)
    stage = Canvas(root, width=800, height=ALTURA_DA_TELA)

    multiplicador = 10
    PassaroAmarelo.velocidade_escalar *= multiplicador
    PassaroVermelho.velocidade_escalar *= multiplicador
    atores.GRAVIDADE = 100
    animar(root, stage, fase)


if __name__ == '__main__':
    fase = Fase(intervalo_de_colisao=32)
    passaros = [
        PassaroVermelho(30, 30),
        PassaroAmarelo(30, 30),
        PassaroAmarelo(30, 30)
    ]
    porcos = [Porco(750, 1), Porco(700, 1)]
    obstaculos = [Obstaculo(310, 100)]

    fase.adicionar_obstaculo(*obstaculos)
    fase.adicionar_passaro(*passaros)
    fase.adicionar_porco(*porcos)
    rodar_fase(fase)
コード例 #22
0
 def teste_colisao_com_chao(self):
     for i in range(30):
         passaro = PassaroAmarelo(i, 0)
         passaro.colidir_com_chao(3)
         self.assertEqual(DESTRUIDO, passaro.status(3), 'Deve colidir com chão sempre que y=0')
コード例 #23
0
 def test_lancamento_45_graus(self):
     passaro_amarelo = PassaroAmarelo(1, 1)
     passaro_amarelo.lancar(45, 2)  # passaro lancado a 45 graus no tempo 2 segundos
     self.assert_passaro_posicao(1, 1, ATIVO, passaro_amarelo, 2.0)
     self.assert_passaro_posicao(1, 1, ATIVO, passaro_amarelo, 2.01)
     self.assert_passaro_posicao(1, 1, ATIVO, passaro_amarelo, 2.02)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.03)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.04)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.05)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.06)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.07)
     self.assert_passaro_posicao(3, 3, ATIVO, passaro_amarelo, 2.08)
     self.assert_passaro_posicao(3, 3, ATIVO, passaro_amarelo, 2.09)
     self.assert_passaro_posicao(3, 3, ATIVO, passaro_amarelo, 2.1)
     self.assert_passaro_posicao(3, 3, ATIVO, passaro_amarelo, 2.11)
     self.assert_passaro_posicao(4, 3, ATIVO, passaro_amarelo, 2.12)
     self.assert_passaro_posicao(4, 4, ATIVO, passaro_amarelo, 2.13)
     self.assert_passaro_posicao(4, 4, ATIVO, passaro_amarelo, 2.14)
     self.assert_passaro_posicao(4, 4, ATIVO, passaro_amarelo, 2.15)
     self.assert_passaro_posicao(4, 4, ATIVO, passaro_amarelo, 2.16)
     self.assert_passaro_posicao(5, 4, ATIVO, passaro_amarelo, 2.17)
     self.assert_passaro_posicao(5, 5, ATIVO, passaro_amarelo, 2.18)
     self.assert_passaro_posicao(5, 5, ATIVO, passaro_amarelo, 2.19)
     self.assert_passaro_posicao(5, 5, ATIVO, passaro_amarelo, 2.2)
     self.assert_passaro_posicao(5, 5, ATIVO, passaro_amarelo, 2.21)
     self.assert_passaro_posicao(6, 5, ATIVO, passaro_amarelo, 2.22)
     self.assert_passaro_posicao(6, 6, ATIVO, passaro_amarelo, 2.23)
     self.assert_passaro_posicao(6, 6, ATIVO, passaro_amarelo, 2.24)
     self.assert_passaro_posicao(6, 6, ATIVO, passaro_amarelo, 2.25)
     self.assert_passaro_posicao(7, 6, ATIVO, passaro_amarelo, 2.26)
     self.assert_passaro_posicao(7, 6, ATIVO, passaro_amarelo, 2.27)
     self.assert_passaro_posicao(7, 7, ATIVO, passaro_amarelo, 2.2800000000000002)
     self.assert_passaro_posicao(7, 7, ATIVO, passaro_amarelo, 2.29)
     self.assert_passaro_posicao(7, 7, ATIVO, passaro_amarelo, 2.3)
     self.assert_passaro_posicao(8, 7, ATIVO, passaro_amarelo, 2.31)
     self.assert_passaro_posicao(8, 7, ATIVO, passaro_amarelo, 2.32)
     self.assert_passaro_posicao(8, 7, ATIVO, passaro_amarelo, 2.33)
     self.assert_passaro_posicao(8, 8, ATIVO, passaro_amarelo, 2.34)
     self.assert_passaro_posicao(8, 8, ATIVO, passaro_amarelo, 2.35)
     self.assert_passaro_posicao(9, 8, ATIVO, passaro_amarelo, 2.36)
     self.assert_passaro_posicao(9, 8, ATIVO, passaro_amarelo, 2.37)
     self.assert_passaro_posicao(9, 8, ATIVO, passaro_amarelo, 2.38)
     self.assert_passaro_posicao(9, 9, ATIVO, passaro_amarelo, 2.39)
     self.assert_passaro_posicao(9, 9, ATIVO, passaro_amarelo, 2.4)
     self.assert_passaro_posicao(10, 9, ATIVO, passaro_amarelo, 2.41)
     self.assert_passaro_posicao(10, 9, ATIVO, passaro_amarelo, 2.42)
     self.assert_passaro_posicao(10, 9, ATIVO, passaro_amarelo, 2.43)
     self.assert_passaro_posicao(10, 9, ATIVO, passaro_amarelo, 2.44)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo, 2.45)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo, 2.46)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo, 2.4699999999999998)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo, 2.48)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo, 2.49)
     self.assert_passaro_posicao(12, 10, ATIVO, passaro_amarelo, 2.5)
     self.assert_passaro_posicao(12, 11, ATIVO, passaro_amarelo, 2.51)
     self.assert_passaro_posicao(12, 11, ATIVO, passaro_amarelo, 2.52)
     self.assert_passaro_posicao(12, 11, ATIVO, passaro_amarelo, 2.5300000000000002)
     self.assert_passaro_posicao(12, 11, ATIVO, passaro_amarelo, 2.54)
     self.assert_passaro_posicao(13, 11, ATIVO, passaro_amarelo, 2.55)
     self.assert_passaro_posicao(13, 11, ATIVO, passaro_amarelo, 2.56)
     self.assert_passaro_posicao(13, 11, ATIVO, passaro_amarelo, 2.57)
     self.assert_passaro_posicao(13, 12, ATIVO, passaro_amarelo, 2.58)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.59)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.6)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.61)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.62)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.63)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.64)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.65)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.66)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.67)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.68)
     self.assert_passaro_posicao(16, 13, ATIVO, passaro_amarelo, 2.69)
     self.assert_passaro_posicao(16, 13, ATIVO, passaro_amarelo, 2.7)
     self.assert_passaro_posicao(16, 14, ATIVO, passaro_amarelo, 2.71)
     self.assert_passaro_posicao(16, 14, ATIVO, passaro_amarelo, 2.7199999999999998)
     self.assert_passaro_posicao(16, 14, ATIVO, passaro_amarelo, 2.73)
     self.assert_passaro_posicao(17, 14, ATIVO, passaro_amarelo, 2.74)
     self.assert_passaro_posicao(17, 14, ATIVO, passaro_amarelo, 2.75)
     self.assert_passaro_posicao(17, 14, ATIVO, passaro_amarelo, 2.76)
     self.assert_passaro_posicao(17, 14, ATIVO, passaro_amarelo, 2.77)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo, 2.7800000000000002)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo, 2.79)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo, 2.8)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo, 2.81)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo, 2.82)
     self.assert_passaro_posicao(19, 15, ATIVO, passaro_amarelo, 2.83)
     self.assert_passaro_posicao(19, 15, ATIVO, passaro_amarelo, 2.84)
     self.assert_passaro_posicao(19, 15, ATIVO, passaro_amarelo, 2.85)
     self.assert_passaro_posicao(19, 16, ATIVO, passaro_amarelo, 2.86)
     self.assert_passaro_posicao(19, 16, ATIVO, passaro_amarelo, 2.87)
     self.assert_passaro_posicao(20, 16, ATIVO, passaro_amarelo, 2.88)
     self.assert_passaro_posicao(20, 16, ATIVO, passaro_amarelo, 2.89)
     self.assert_passaro_posicao(20, 16, ATIVO, passaro_amarelo, 2.9)
     self.assert_passaro_posicao(20, 16, ATIVO, passaro_amarelo, 2.91)
     self.assert_passaro_posicao(21, 16, ATIVO, passaro_amarelo, 2.92)
     self.assert_passaro_posicao(21, 16, ATIVO, passaro_amarelo, 2.93)
     self.assert_passaro_posicao(21, 17, ATIVO, passaro_amarelo, 2.94)
     self.assert_passaro_posicao(21, 17, ATIVO, passaro_amarelo, 2.95)
     self.assert_passaro_posicao(21, 17, ATIVO, passaro_amarelo, 2.96)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo, 2.9699999999999998)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo, 2.98)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo, 2.99)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo, 3.0)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo, 3.01)
     self.assert_passaro_posicao(23, 17, ATIVO, passaro_amarelo, 3.02)
     self.assert_passaro_posicao(23, 18, ATIVO, passaro_amarelo, 3.0300000000000002)
     self.assert_passaro_posicao(23, 18, ATIVO, passaro_amarelo, 3.04)
     self.assert_passaro_posicao(23, 18, ATIVO, passaro_amarelo, 3.05)
     self.assert_passaro_posicao(23, 18, ATIVO, passaro_amarelo, 3.06)
     self.assert_passaro_posicao(24, 18, ATIVO, passaro_amarelo, 3.0700000000000003)
     self.assert_passaro_posicao(24, 18, ATIVO, passaro_amarelo, 3.08)
     self.assert_passaro_posicao(24, 18, ATIVO, passaro_amarelo, 3.09)
     self.assert_passaro_posicao(24, 18, ATIVO, passaro_amarelo, 3.1)
     self.assert_passaro_posicao(25, 18, ATIVO, passaro_amarelo, 3.1100000000000003)
     self.assert_passaro_posicao(25, 18, ATIVO, passaro_amarelo, 3.12)
     self.assert_passaro_posicao(25, 19, ATIVO, passaro_amarelo, 3.13)
     self.assert_passaro_posicao(25, 19, ATIVO, passaro_amarelo, 3.1399999999999997)
     self.assert_passaro_posicao(25, 19, ATIVO, passaro_amarelo, 3.15)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo, 3.16)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo, 3.17)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo, 3.1799999999999997)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo, 3.19)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo, 3.2)
     self.assert_passaro_posicao(27, 19, ATIVO, passaro_amarelo, 3.21)
     self.assert_passaro_posicao(27, 19, ATIVO, passaro_amarelo, 3.2199999999999998)
     self.assert_passaro_posicao(27, 20, ATIVO, passaro_amarelo, 3.23)
     self.assert_passaro_posicao(27, 20, ATIVO, passaro_amarelo, 3.24)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo, 3.25)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo, 3.26)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo, 3.27)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo, 3.2800000000000002)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo, 3.29)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo, 3.3)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo, 3.31)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo, 3.3200000000000003)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo, 3.33)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo, 3.34)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo, 3.35)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo, 3.3600000000000003)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo, 3.37)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo, 3.38)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo, 3.3899999999999997)
     self.assert_passaro_posicao(31, 21, ATIVO, passaro_amarelo, 3.4)
     self.assert_passaro_posicao(31, 21, ATIVO, passaro_amarelo, 3.41)
     self.assert_passaro_posicao(31, 21, ATIVO, passaro_amarelo, 3.42)
     self.assert_passaro_posicao(31, 21, ATIVO, passaro_amarelo, 3.4299999999999997)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo, 3.44)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo, 3.45)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo, 3.46)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo, 3.4699999999999998)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo, 3.48)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo, 3.49)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo, 3.5)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo, 3.51)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo, 3.52)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo, 3.5300000000000002)
     self.assert_passaro_posicao(34, 22, ATIVO, passaro_amarelo, 3.54)
     self.assert_passaro_posicao(34, 22, ATIVO, passaro_amarelo, 3.55)
     self.assert_passaro_posicao(34, 22, ATIVO, passaro_amarelo, 3.56)
     self.assert_passaro_posicao(34, 22, ATIVO, passaro_amarelo, 3.5700000000000003)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo, 3.58)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo, 3.59)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo, 3.6)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo, 3.6100000000000003)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo, 3.62)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo, 3.63)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo, 3.6399999999999997)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo, 3.65)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo, 3.66)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo, 3.67)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo, 3.6799999999999997)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo, 3.69)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo, 3.7)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo, 3.71)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo, 3.7199999999999998)
     self.assert_passaro_posicao(38, 23, ATIVO, passaro_amarelo, 3.73)
     self.assert_passaro_posicao(38, 23, ATIVO, passaro_amarelo, 3.74)
     self.assert_passaro_posicao(38, 23, ATIVO, passaro_amarelo, 3.75)
     self.assert_passaro_posicao(38, 23, ATIVO, passaro_amarelo, 3.76)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo, 3.77)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo, 3.7800000000000002)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo, 3.79)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo, 3.8)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo, 3.81)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo, 3.8200000000000003)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo, 3.83)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo, 3.84)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo, 3.85)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo, 3.8600000000000003)
     self.assert_passaro_posicao(41, 23, ATIVO, passaro_amarelo, 3.87)
     self.assert_passaro_posicao(41, 23, ATIVO, passaro_amarelo, 3.88)
     self.assert_passaro_posicao(41, 23, ATIVO, passaro_amarelo, 3.8899999999999997)
     self.assert_passaro_posicao(41, 23, ATIVO, passaro_amarelo, 3.9)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo, 3.91)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo, 3.92)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo, 3.9299999999999997)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo, 3.94)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo, 3.95)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo, 3.96)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo, 3.9699999999999998)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo, 3.98)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo, 3.99)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo, 4.0)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo, 4.01)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo, 4.02)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo, 4.029999999999999)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo, 4.04)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo, 4.05)
     self.assert_passaro_posicao(45, 23, ATIVO, passaro_amarelo, 4.0600000000000005)
     self.assert_passaro_posicao(45, 23, ATIVO, passaro_amarelo, 4.07)
     self.assert_passaro_posicao(45, 23, ATIVO, passaro_amarelo, 4.08)
     self.assert_passaro_posicao(45, 23, ATIVO, passaro_amarelo, 4.09)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo, 4.1)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo, 4.109999999999999)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo, 4.12)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo, 4.13)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo, 4.140000000000001)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo, 4.15)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo, 4.16)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo, 4.17)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo, 4.18)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo, 4.1899999999999995)
     self.assert_passaro_posicao(48, 23, ATIVO, passaro_amarelo, 4.2)
     self.assert_passaro_posicao(48, 23, ATIVO, passaro_amarelo, 4.21)
     self.assert_passaro_posicao(48, 23, ATIVO, passaro_amarelo, 4.220000000000001)
     self.assert_passaro_posicao(48, 23, ATIVO, passaro_amarelo, 4.23)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo, 4.24)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo, 4.25)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo, 4.26)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo, 4.27)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo, 4.279999999999999)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo, 4.29)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo, 4.3)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo, 4.3100000000000005)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo, 4.32)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo, 4.33)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo, 4.34)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo, 4.35)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo, 4.359999999999999)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo, 4.37)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo, 4.38)
     self.assert_passaro_posicao(52, 23, ATIVO, passaro_amarelo, 4.390000000000001)
     self.assert_passaro_posicao(52, 23, ATIVO, passaro_amarelo, 4.4)
     self.assert_passaro_posicao(52, 23, ATIVO, passaro_amarelo, 4.41)
     self.assert_passaro_posicao(52, 23, ATIVO, passaro_amarelo, 4.42)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo, 4.43)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo, 4.4399999999999995)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo, 4.45)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo, 4.46)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo, 4.470000000000001)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.48)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.49)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.5)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.51)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.52)
     self.assert_passaro_posicao(55, 23, ATIVO, passaro_amarelo, 4.529999999999999)
     self.assert_passaro_posicao(55, 23, ATIVO, passaro_amarelo, 4.54)
     self.assert_passaro_posicao(55, 23, ATIVO, passaro_amarelo, 4.55)
     self.assert_passaro_posicao(55, 23, ATIVO, passaro_amarelo, 4.5600000000000005)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo, 4.57)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo, 4.58)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo, 4.59)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo, 4.6)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo, 4.609999999999999)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo, 4.62)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo, 4.63)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo, 4.640000000000001)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo, 4.65)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo, 4.66)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo, 4.67)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo, 4.68)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo, 4.6899999999999995)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo, 4.7)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo, 4.71)
     self.assert_passaro_posicao(59, 22, ATIVO, passaro_amarelo, 4.720000000000001)
     self.assert_passaro_posicao(59, 22, ATIVO, passaro_amarelo, 4.73)
     self.assert_passaro_posicao(59, 22, ATIVO, passaro_amarelo, 4.74)
     self.assert_passaro_posicao(59, 22, ATIVO, passaro_amarelo, 4.75)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo, 4.76)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo, 4.77)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo, 4.779999999999999)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo, 4.79)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo, 4.8)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo, 4.8100000000000005)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo, 4.82)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo, 4.83)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo, 4.84)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo, 4.85)
     self.assert_passaro_posicao(62, 21, ATIVO, passaro_amarelo, 4.859999999999999)
     self.assert_passaro_posicao(62, 21, ATIVO, passaro_amarelo, 4.87)
     self.assert_passaro_posicao(62, 21, ATIVO, passaro_amarelo, 4.88)
     self.assert_passaro_posicao(62, 21, ATIVO, passaro_amarelo, 4.890000000000001)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo, 4.9)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo, 4.91)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo, 4.92)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo, 4.93)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo, 4.9399999999999995)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo, 4.95)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo, 4.96)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo, 4.970000000000001)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo, 4.98)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo, 4.99)
     self.assert_passaro_posicao(65, 20, ATIVO, passaro_amarelo, 5.0)
     self.assert_passaro_posicao(65, 20, ATIVO, passaro_amarelo, 5.01)
     self.assert_passaro_posicao(65, 19, ATIVO, passaro_amarelo, 5.02)
     self.assert_passaro_posicao(65, 19, ATIVO, passaro_amarelo, 5.029999999999999)
     self.assert_passaro_posicao(65, 19, ATIVO, passaro_amarelo, 5.04)
     self.assert_passaro_posicao(66, 19, ATIVO, passaro_amarelo, 5.05)
     self.assert_passaro_posicao(66, 19, ATIVO, passaro_amarelo, 5.0600000000000005)
     self.assert_passaro_posicao(66, 19, ATIVO, passaro_amarelo, 5.07)
     self.assert_passaro_posicao(66, 19, ATIVO, passaro_amarelo, 5.08)
     self.assert_passaro_posicao(67, 19, ATIVO, passaro_amarelo, 5.09)
     self.assert_passaro_posicao(67, 19, ATIVO, passaro_amarelo, 5.1)
     self.assert_passaro_posicao(67, 19, ATIVO, passaro_amarelo, 5.109999999999999)
     self.assert_passaro_posicao(67, 19, ATIVO, passaro_amarelo, 5.12)
     self.assert_passaro_posicao(67, 18, ATIVO, passaro_amarelo, 5.13)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo, 5.140000000000001)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo, 5.15)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo, 5.16)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo, 5.17)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo, 5.18)
     self.assert_passaro_posicao(69, 18, ATIVO, passaro_amarelo, 5.1899999999999995)
     self.assert_passaro_posicao(69, 18, ATIVO, passaro_amarelo, 5.2)
     self.assert_passaro_posicao(69, 18, ATIVO, passaro_amarelo, 5.21)
     self.assert_passaro_posicao(69, 17, ATIVO, passaro_amarelo, 5.220000000000001)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.23)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.24)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.25)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.26)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.27)
     self.assert_passaro_posicao(71, 17, ATIVO, passaro_amarelo, 5.279999999999999)
     self.assert_passaro_posicao(71, 17, ATIVO, passaro_amarelo, 5.29)
     self.assert_passaro_posicao(71, 17, ATIVO, passaro_amarelo, 5.3)
     self.assert_passaro_posicao(71, 16, ATIVO, passaro_amarelo, 5.3100000000000005)
     self.assert_passaro_posicao(71, 16, ATIVO, passaro_amarelo, 5.32)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo, 5.33)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo, 5.34)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo, 5.35)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo, 5.359999999999999)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo, 5.37)
     self.assert_passaro_posicao(73, 16, ATIVO, passaro_amarelo, 5.38)
     self.assert_passaro_posicao(73, 15, ATIVO, passaro_amarelo, 5.390000000000001)
     self.assert_passaro_posicao(73, 15, ATIVO, passaro_amarelo, 5.4)
     self.assert_passaro_posicao(73, 15, ATIVO, passaro_amarelo, 5.41)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo, 5.42)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo, 5.43)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo, 5.4399999999999995)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo, 5.45)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo, 5.46)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo, 5.470000000000001)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo, 5.48)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo, 5.49)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo, 5.5)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo, 5.51)
     self.assert_passaro_posicao(76, 14, ATIVO, passaro_amarelo, 5.52)
     self.assert_passaro_posicao(76, 14, ATIVO, passaro_amarelo, 5.529999999999999)
     self.assert_passaro_posicao(76, 13, ATIVO, passaro_amarelo, 5.54)
     self.assert_passaro_posicao(76, 13, ATIVO, passaro_amarelo, 5.55)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo, 5.5600000000000005)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo, 5.57)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo, 5.58)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo, 5.59)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo, 5.6)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo, 5.609999999999999)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo, 5.62)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo, 5.63)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo, 5.640000000000001)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo, 5.65)
     self.assert_passaro_posicao(79, 12, ATIVO, passaro_amarelo, 5.66)
     self.assert_passaro_posicao(79, 12, ATIVO, passaro_amarelo, 5.67)
     self.assert_passaro_posicao(79, 11, ATIVO, passaro_amarelo, 5.68)
     self.assert_passaro_posicao(79, 11, ATIVO, passaro_amarelo, 5.6899999999999995)
     self.assert_passaro_posicao(79, 11, ATIVO, passaro_amarelo, 5.7)
     self.assert_passaro_posicao(80, 11, ATIVO, passaro_amarelo, 5.71)
     self.assert_passaro_posicao(80, 11, ATIVO, passaro_amarelo, 5.720000000000001)
     self.assert_passaro_posicao(80, 11, ATIVO, passaro_amarelo, 5.73)
     self.assert_passaro_posicao(80, 10, ATIVO, passaro_amarelo, 5.74)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo, 5.75)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo, 5.76)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo, 5.77)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo, 5.779999999999999)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo, 5.79)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo, 5.8)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo, 5.8100000000000005)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo, 5.82)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo, 5.83)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo, 5.84)
     self.assert_passaro_posicao(83, 9, ATIVO, passaro_amarelo, 5.85)
     self.assert_passaro_posicao(83, 8, ATIVO, passaro_amarelo, 5.859999999999999)
     self.assert_passaro_posicao(83, 8, ATIVO, passaro_amarelo, 5.87)
     self.assert_passaro_posicao(83, 8, ATIVO, passaro_amarelo, 5.88)
     self.assert_passaro_posicao(84, 8, ATIVO, passaro_amarelo, 5.890000000000001)
     self.assert_passaro_posicao(84, 8, ATIVO, passaro_amarelo, 5.9)
     self.assert_passaro_posicao(84, 8, ATIVO, passaro_amarelo, 5.91)
     self.assert_passaro_posicao(84, 7, ATIVO, passaro_amarelo, 5.92)
     self.assert_passaro_posicao(84, 7, ATIVO, passaro_amarelo, 5.93)
     self.assert_passaro_posicao(85, 7, ATIVO, passaro_amarelo, 5.9399999999999995)
     self.assert_passaro_posicao(85, 7, ATIVO, passaro_amarelo, 5.95)
     self.assert_passaro_posicao(85, 7, ATIVO, passaro_amarelo, 5.96)
     self.assert_passaro_posicao(85, 6, ATIVO, passaro_amarelo, 5.970000000000001)
     self.assert_passaro_posicao(85, 6, ATIVO, passaro_amarelo, 5.98)
     self.assert_passaro_posicao(86, 6, ATIVO, passaro_amarelo, 5.99)
     self.assert_passaro_posicao(86, 6, ATIVO, passaro_amarelo, 6.0)
     self.assert_passaro_posicao(86, 6, ATIVO, passaro_amarelo, 6.01)
     self.assert_passaro_posicao(86, 5, ATIVO, passaro_amarelo, 6.02)
     self.assert_passaro_posicao(86, 5, ATIVO, passaro_amarelo, 6.03)
     self.assert_passaro_posicao(87, 5, ATIVO, passaro_amarelo, 6.04)
     self.assert_passaro_posicao(87, 5, ATIVO, passaro_amarelo, 6.05)
     self.assert_passaro_posicao(87, 5, ATIVO, passaro_amarelo, 6.06)
     self.assert_passaro_posicao(87, 5, ATIVO, passaro_amarelo, 6.07)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.08)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.09)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.1)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.11)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.12)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.13)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.14)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.15)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.16)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.17)
     self.assert_passaro_posicao(90, 2, ATIVO, passaro_amarelo, 6.18)
     self.assert_passaro_posicao(90, 2, ATIVO, passaro_amarelo, 6.19)
     self.assert_passaro_posicao(90, 2, ATIVO, passaro_amarelo, 6.2)
     self.assert_passaro_posicao(90, 2, ATIVO, passaro_amarelo, 6.21)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.22)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.23)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.24)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.25)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.26)
     self.assert_passaro_posicao(92, 0, DESTRUIDO, passaro_amarelo, 6.27)
コード例 #24
0
 def teste_status(self):
     passaro_amarelo = PassaroAmarelo(1, 1)
     self.assert_ator_caracteres(passaro_amarelo, 'A', 'a')
コード例 #25
0
 def test_lancamento_45_graus(self):
     passaro_amarelo = PassaroAmarelo(1, 1)
     passaro_amarelo.lancar(
         45, 2)  # passaro lancado a 45 graus no tempo 2 segundos
     self.assert_passaro_posicao(1, 1, ATIVO, passaro_amarelo, 2.0)
     self.assert_passaro_posicao(1, 1, ATIVO, passaro_amarelo, 2.01)
     self.assert_passaro_posicao(1, 1, ATIVO, passaro_amarelo, 2.02)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.03)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.04)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.05)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.06)
     self.assert_passaro_posicao(2, 2, ATIVO, passaro_amarelo, 2.07)
     self.assert_passaro_posicao(3, 3, ATIVO, passaro_amarelo, 2.08)
     self.assert_passaro_posicao(3, 3, ATIVO, passaro_amarelo, 2.09)
     self.assert_passaro_posicao(3, 3, ATIVO, passaro_amarelo, 2.1)
     self.assert_passaro_posicao(3, 3, ATIVO, passaro_amarelo, 2.11)
     self.assert_passaro_posicao(4, 3, ATIVO, passaro_amarelo, 2.12)
     self.assert_passaro_posicao(4, 4, ATIVO, passaro_amarelo, 2.13)
     self.assert_passaro_posicao(4, 4, ATIVO, passaro_amarelo, 2.14)
     self.assert_passaro_posicao(4, 4, ATIVO, passaro_amarelo, 2.15)
     self.assert_passaro_posicao(4, 4, ATIVO, passaro_amarelo, 2.16)
     self.assert_passaro_posicao(5, 4, ATIVO, passaro_amarelo, 2.17)
     self.assert_passaro_posicao(5, 5, ATIVO, passaro_amarelo, 2.18)
     self.assert_passaro_posicao(5, 5, ATIVO, passaro_amarelo, 2.19)
     self.assert_passaro_posicao(5, 5, ATIVO, passaro_amarelo, 2.2)
     self.assert_passaro_posicao(5, 5, ATIVO, passaro_amarelo, 2.21)
     self.assert_passaro_posicao(6, 5, ATIVO, passaro_amarelo, 2.22)
     self.assert_passaro_posicao(6, 6, ATIVO, passaro_amarelo, 2.23)
     self.assert_passaro_posicao(6, 6, ATIVO, passaro_amarelo, 2.24)
     self.assert_passaro_posicao(6, 6, ATIVO, passaro_amarelo, 2.25)
     self.assert_passaro_posicao(7, 6, ATIVO, passaro_amarelo, 2.26)
     self.assert_passaro_posicao(7, 6, ATIVO, passaro_amarelo, 2.27)
     self.assert_passaro_posicao(7, 7, ATIVO, passaro_amarelo,
                                 2.2800000000000002)
     self.assert_passaro_posicao(7, 7, ATIVO, passaro_amarelo, 2.29)
     self.assert_passaro_posicao(7, 7, ATIVO, passaro_amarelo, 2.3)
     self.assert_passaro_posicao(8, 7, ATIVO, passaro_amarelo, 2.31)
     self.assert_passaro_posicao(8, 7, ATIVO, passaro_amarelo, 2.32)
     self.assert_passaro_posicao(8, 7, ATIVO, passaro_amarelo, 2.33)
     self.assert_passaro_posicao(8, 8, ATIVO, passaro_amarelo, 2.34)
     self.assert_passaro_posicao(8, 8, ATIVO, passaro_amarelo, 2.35)
     self.assert_passaro_posicao(9, 8, ATIVO, passaro_amarelo, 2.36)
     self.assert_passaro_posicao(9, 8, ATIVO, passaro_amarelo, 2.37)
     self.assert_passaro_posicao(9, 8, ATIVO, passaro_amarelo, 2.38)
     self.assert_passaro_posicao(9, 9, ATIVO, passaro_amarelo, 2.39)
     self.assert_passaro_posicao(9, 9, ATIVO, passaro_amarelo, 2.4)
     self.assert_passaro_posicao(10, 9, ATIVO, passaro_amarelo, 2.41)
     self.assert_passaro_posicao(10, 9, ATIVO, passaro_amarelo, 2.42)
     self.assert_passaro_posicao(10, 9, ATIVO, passaro_amarelo, 2.43)
     self.assert_passaro_posicao(10, 9, ATIVO, passaro_amarelo, 2.44)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo, 2.45)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo, 2.46)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo,
                                 2.4699999999999998)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo, 2.48)
     self.assert_passaro_posicao(11, 10, ATIVO, passaro_amarelo, 2.49)
     self.assert_passaro_posicao(12, 10, ATIVO, passaro_amarelo, 2.5)
     self.assert_passaro_posicao(12, 11, ATIVO, passaro_amarelo, 2.51)
     self.assert_passaro_posicao(12, 11, ATIVO, passaro_amarelo, 2.52)
     self.assert_passaro_posicao(12, 11, ATIVO, passaro_amarelo,
                                 2.5300000000000002)
     self.assert_passaro_posicao(12, 11, ATIVO, passaro_amarelo, 2.54)
     self.assert_passaro_posicao(13, 11, ATIVO, passaro_amarelo, 2.55)
     self.assert_passaro_posicao(13, 11, ATIVO, passaro_amarelo, 2.56)
     self.assert_passaro_posicao(13, 11, ATIVO, passaro_amarelo, 2.57)
     self.assert_passaro_posicao(13, 12, ATIVO, passaro_amarelo, 2.58)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.59)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.6)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.61)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.62)
     self.assert_passaro_posicao(14, 12, ATIVO, passaro_amarelo, 2.63)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.64)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.65)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.66)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.67)
     self.assert_passaro_posicao(15, 13, ATIVO, passaro_amarelo, 2.68)
     self.assert_passaro_posicao(16, 13, ATIVO, passaro_amarelo, 2.69)
     self.assert_passaro_posicao(16, 13, ATIVO, passaro_amarelo, 2.7)
     self.assert_passaro_posicao(16, 14, ATIVO, passaro_amarelo, 2.71)
     self.assert_passaro_posicao(16, 14, ATIVO, passaro_amarelo,
                                 2.7199999999999998)
     self.assert_passaro_posicao(16, 14, ATIVO, passaro_amarelo, 2.73)
     self.assert_passaro_posicao(17, 14, ATIVO, passaro_amarelo, 2.74)
     self.assert_passaro_posicao(17, 14, ATIVO, passaro_amarelo, 2.75)
     self.assert_passaro_posicao(17, 14, ATIVO, passaro_amarelo, 2.76)
     self.assert_passaro_posicao(17, 14, ATIVO, passaro_amarelo, 2.77)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo,
                                 2.7800000000000002)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo, 2.79)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo, 2.8)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo, 2.81)
     self.assert_passaro_posicao(18, 15, ATIVO, passaro_amarelo, 2.82)
     self.assert_passaro_posicao(19, 15, ATIVO, passaro_amarelo, 2.83)
     self.assert_passaro_posicao(19, 15, ATIVO, passaro_amarelo, 2.84)
     self.assert_passaro_posicao(19, 15, ATIVO, passaro_amarelo, 2.85)
     self.assert_passaro_posicao(19, 16, ATIVO, passaro_amarelo, 2.86)
     self.assert_passaro_posicao(19, 16, ATIVO, passaro_amarelo, 2.87)
     self.assert_passaro_posicao(20, 16, ATIVO, passaro_amarelo, 2.88)
     self.assert_passaro_posicao(20, 16, ATIVO, passaro_amarelo, 2.89)
     self.assert_passaro_posicao(20, 16, ATIVO, passaro_amarelo, 2.9)
     self.assert_passaro_posicao(20, 16, ATIVO, passaro_amarelo, 2.91)
     self.assert_passaro_posicao(21, 16, ATIVO, passaro_amarelo, 2.92)
     self.assert_passaro_posicao(21, 16, ATIVO, passaro_amarelo, 2.93)
     self.assert_passaro_posicao(21, 17, ATIVO, passaro_amarelo, 2.94)
     self.assert_passaro_posicao(21, 17, ATIVO, passaro_amarelo, 2.95)
     self.assert_passaro_posicao(21, 17, ATIVO, passaro_amarelo, 2.96)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo,
                                 2.9699999999999998)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo, 2.98)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo, 2.99)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo, 3.0)
     self.assert_passaro_posicao(22, 17, ATIVO, passaro_amarelo, 3.01)
     self.assert_passaro_posicao(23, 17, ATIVO, passaro_amarelo, 3.02)
     self.assert_passaro_posicao(23, 18, ATIVO, passaro_amarelo,
                                 3.0300000000000002)
     self.assert_passaro_posicao(23, 18, ATIVO, passaro_amarelo, 3.04)
     self.assert_passaro_posicao(23, 18, ATIVO, passaro_amarelo, 3.05)
     self.assert_passaro_posicao(23, 18, ATIVO, passaro_amarelo, 3.06)
     self.assert_passaro_posicao(24, 18, ATIVO, passaro_amarelo,
                                 3.0700000000000003)
     self.assert_passaro_posicao(24, 18, ATIVO, passaro_amarelo, 3.08)
     self.assert_passaro_posicao(24, 18, ATIVO, passaro_amarelo, 3.09)
     self.assert_passaro_posicao(24, 18, ATIVO, passaro_amarelo, 3.1)
     self.assert_passaro_posicao(25, 18, ATIVO, passaro_amarelo,
                                 3.1100000000000003)
     self.assert_passaro_posicao(25, 18, ATIVO, passaro_amarelo, 3.12)
     self.assert_passaro_posicao(25, 19, ATIVO, passaro_amarelo, 3.13)
     self.assert_passaro_posicao(25, 19, ATIVO, passaro_amarelo,
                                 3.1399999999999997)
     self.assert_passaro_posicao(25, 19, ATIVO, passaro_amarelo, 3.15)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo, 3.16)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo, 3.17)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo,
                                 3.1799999999999997)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo, 3.19)
     self.assert_passaro_posicao(26, 19, ATIVO, passaro_amarelo, 3.2)
     self.assert_passaro_posicao(27, 19, ATIVO, passaro_amarelo, 3.21)
     self.assert_passaro_posicao(27, 19, ATIVO, passaro_amarelo,
                                 3.2199999999999998)
     self.assert_passaro_posicao(27, 20, ATIVO, passaro_amarelo, 3.23)
     self.assert_passaro_posicao(27, 20, ATIVO, passaro_amarelo, 3.24)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo, 3.25)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo, 3.26)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo, 3.27)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo,
                                 3.2800000000000002)
     self.assert_passaro_posicao(28, 20, ATIVO, passaro_amarelo, 3.29)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo, 3.3)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo, 3.31)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo,
                                 3.3200000000000003)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo, 3.33)
     self.assert_passaro_posicao(29, 20, ATIVO, passaro_amarelo, 3.34)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo, 3.35)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo,
                                 3.3600000000000003)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo, 3.37)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo, 3.38)
     self.assert_passaro_posicao(30, 21, ATIVO, passaro_amarelo,
                                 3.3899999999999997)
     self.assert_passaro_posicao(31, 21, ATIVO, passaro_amarelo, 3.4)
     self.assert_passaro_posicao(31, 21, ATIVO, passaro_amarelo, 3.41)
     self.assert_passaro_posicao(31, 21, ATIVO, passaro_amarelo, 3.42)
     self.assert_passaro_posicao(31, 21, ATIVO, passaro_amarelo,
                                 3.4299999999999997)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo, 3.44)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo, 3.45)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo, 3.46)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo,
                                 3.4699999999999998)
     self.assert_passaro_posicao(32, 21, ATIVO, passaro_amarelo, 3.48)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo, 3.49)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo, 3.5)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo, 3.51)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo, 3.52)
     self.assert_passaro_posicao(33, 22, ATIVO, passaro_amarelo,
                                 3.5300000000000002)
     self.assert_passaro_posicao(34, 22, ATIVO, passaro_amarelo, 3.54)
     self.assert_passaro_posicao(34, 22, ATIVO, passaro_amarelo, 3.55)
     self.assert_passaro_posicao(34, 22, ATIVO, passaro_amarelo, 3.56)
     self.assert_passaro_posicao(34, 22, ATIVO, passaro_amarelo,
                                 3.5700000000000003)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo, 3.58)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo, 3.59)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo, 3.6)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo,
                                 3.6100000000000003)
     self.assert_passaro_posicao(35, 22, ATIVO, passaro_amarelo, 3.62)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo, 3.63)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo,
                                 3.6399999999999997)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo, 3.65)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo, 3.66)
     self.assert_passaro_posicao(36, 22, ATIVO, passaro_amarelo, 3.67)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo,
                                 3.6799999999999997)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo, 3.69)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo, 3.7)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo, 3.71)
     self.assert_passaro_posicao(37, 23, ATIVO, passaro_amarelo,
                                 3.7199999999999998)
     self.assert_passaro_posicao(38, 23, ATIVO, passaro_amarelo, 3.73)
     self.assert_passaro_posicao(38, 23, ATIVO, passaro_amarelo, 3.74)
     self.assert_passaro_posicao(38, 23, ATIVO, passaro_amarelo, 3.75)
     self.assert_passaro_posicao(38, 23, ATIVO, passaro_amarelo, 3.76)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo, 3.77)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo,
                                 3.7800000000000002)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo, 3.79)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo, 3.8)
     self.assert_passaro_posicao(39, 23, ATIVO, passaro_amarelo, 3.81)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo,
                                 3.8200000000000003)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo, 3.83)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo, 3.84)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo, 3.85)
     self.assert_passaro_posicao(40, 23, ATIVO, passaro_amarelo,
                                 3.8600000000000003)
     self.assert_passaro_posicao(41, 23, ATIVO, passaro_amarelo, 3.87)
     self.assert_passaro_posicao(41, 23, ATIVO, passaro_amarelo, 3.88)
     self.assert_passaro_posicao(41, 23, ATIVO, passaro_amarelo,
                                 3.8899999999999997)
     self.assert_passaro_posicao(41, 23, ATIVO, passaro_amarelo, 3.9)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo, 3.91)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo, 3.92)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo,
                                 3.9299999999999997)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo, 3.94)
     self.assert_passaro_posicao(42, 23, ATIVO, passaro_amarelo, 3.95)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo, 3.96)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo,
                                 3.9699999999999998)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo, 3.98)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo, 3.99)
     self.assert_passaro_posicao(43, 23, ATIVO, passaro_amarelo, 4.0)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo, 4.01)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo, 4.02)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo,
                                 4.029999999999999)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo, 4.04)
     self.assert_passaro_posicao(44, 23, ATIVO, passaro_amarelo, 4.05)
     self.assert_passaro_posicao(45, 23, ATIVO, passaro_amarelo,
                                 4.0600000000000005)
     self.assert_passaro_posicao(45, 23, ATIVO, passaro_amarelo, 4.07)
     self.assert_passaro_posicao(45, 23, ATIVO, passaro_amarelo, 4.08)
     self.assert_passaro_posicao(45, 23, ATIVO, passaro_amarelo, 4.09)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo, 4.1)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo,
                                 4.109999999999999)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo, 4.12)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo, 4.13)
     self.assert_passaro_posicao(46, 23, ATIVO, passaro_amarelo,
                                 4.140000000000001)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo, 4.15)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo, 4.16)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo, 4.17)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo, 4.18)
     self.assert_passaro_posicao(47, 23, ATIVO, passaro_amarelo,
                                 4.1899999999999995)
     self.assert_passaro_posicao(48, 23, ATIVO, passaro_amarelo, 4.2)
     self.assert_passaro_posicao(48, 23, ATIVO, passaro_amarelo, 4.21)
     self.assert_passaro_posicao(48, 23, ATIVO, passaro_amarelo,
                                 4.220000000000001)
     self.assert_passaro_posicao(48, 23, ATIVO, passaro_amarelo, 4.23)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo, 4.24)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo, 4.25)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo, 4.26)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo, 4.27)
     self.assert_passaro_posicao(49, 23, ATIVO, passaro_amarelo,
                                 4.279999999999999)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo, 4.29)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo, 4.3)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo,
                                 4.3100000000000005)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo, 4.32)
     self.assert_passaro_posicao(50, 23, ATIVO, passaro_amarelo, 4.33)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo, 4.34)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo, 4.35)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo,
                                 4.359999999999999)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo, 4.37)
     self.assert_passaro_posicao(51, 23, ATIVO, passaro_amarelo, 4.38)
     self.assert_passaro_posicao(52, 23, ATIVO, passaro_amarelo,
                                 4.390000000000001)
     self.assert_passaro_posicao(52, 23, ATIVO, passaro_amarelo, 4.4)
     self.assert_passaro_posicao(52, 23, ATIVO, passaro_amarelo, 4.41)
     self.assert_passaro_posicao(52, 23, ATIVO, passaro_amarelo, 4.42)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo, 4.43)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo,
                                 4.4399999999999995)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo, 4.45)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo, 4.46)
     self.assert_passaro_posicao(53, 23, ATIVO, passaro_amarelo,
                                 4.470000000000001)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.48)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.49)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.5)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.51)
     self.assert_passaro_posicao(54, 23, ATIVO, passaro_amarelo, 4.52)
     self.assert_passaro_posicao(55, 23, ATIVO, passaro_amarelo,
                                 4.529999999999999)
     self.assert_passaro_posicao(55, 23, ATIVO, passaro_amarelo, 4.54)
     self.assert_passaro_posicao(55, 23, ATIVO, passaro_amarelo, 4.55)
     self.assert_passaro_posicao(55, 23, ATIVO, passaro_amarelo,
                                 4.5600000000000005)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo, 4.57)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo, 4.58)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo, 4.59)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo, 4.6)
     self.assert_passaro_posicao(56, 22, ATIVO, passaro_amarelo,
                                 4.609999999999999)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo, 4.62)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo, 4.63)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo,
                                 4.640000000000001)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo, 4.65)
     self.assert_passaro_posicao(57, 22, ATIVO, passaro_amarelo, 4.66)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo, 4.67)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo, 4.68)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo,
                                 4.6899999999999995)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo, 4.7)
     self.assert_passaro_posicao(58, 22, ATIVO, passaro_amarelo, 4.71)
     self.assert_passaro_posicao(59, 22, ATIVO, passaro_amarelo,
                                 4.720000000000001)
     self.assert_passaro_posicao(59, 22, ATIVO, passaro_amarelo, 4.73)
     self.assert_passaro_posicao(59, 22, ATIVO, passaro_amarelo, 4.74)
     self.assert_passaro_posicao(59, 22, ATIVO, passaro_amarelo, 4.75)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo, 4.76)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo, 4.77)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo,
                                 4.779999999999999)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo, 4.79)
     self.assert_passaro_posicao(60, 21, ATIVO, passaro_amarelo, 4.8)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo,
                                 4.8100000000000005)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo, 4.82)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo, 4.83)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo, 4.84)
     self.assert_passaro_posicao(61, 21, ATIVO, passaro_amarelo, 4.85)
     self.assert_passaro_posicao(62, 21, ATIVO, passaro_amarelo,
                                 4.859999999999999)
     self.assert_passaro_posicao(62, 21, ATIVO, passaro_amarelo, 4.87)
     self.assert_passaro_posicao(62, 21, ATIVO, passaro_amarelo, 4.88)
     self.assert_passaro_posicao(62, 21, ATIVO, passaro_amarelo,
                                 4.890000000000001)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo, 4.9)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo, 4.91)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo, 4.92)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo, 4.93)
     self.assert_passaro_posicao(63, 20, ATIVO, passaro_amarelo,
                                 4.9399999999999995)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo, 4.95)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo, 4.96)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo,
                                 4.970000000000001)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo, 4.98)
     self.assert_passaro_posicao(64, 20, ATIVO, passaro_amarelo, 4.99)
     self.assert_passaro_posicao(65, 20, ATIVO, passaro_amarelo, 5.0)
     self.assert_passaro_posicao(65, 20, ATIVO, passaro_amarelo, 5.01)
     self.assert_passaro_posicao(65, 19, ATIVO, passaro_amarelo, 5.02)
     self.assert_passaro_posicao(65, 19, ATIVO, passaro_amarelo,
                                 5.029999999999999)
     self.assert_passaro_posicao(65, 19, ATIVO, passaro_amarelo, 5.04)
     self.assert_passaro_posicao(66, 19, ATIVO, passaro_amarelo, 5.05)
     self.assert_passaro_posicao(66, 19, ATIVO, passaro_amarelo,
                                 5.0600000000000005)
     self.assert_passaro_posicao(66, 19, ATIVO, passaro_amarelo, 5.07)
     self.assert_passaro_posicao(66, 19, ATIVO, passaro_amarelo, 5.08)
     self.assert_passaro_posicao(67, 19, ATIVO, passaro_amarelo, 5.09)
     self.assert_passaro_posicao(67, 19, ATIVO, passaro_amarelo, 5.1)
     self.assert_passaro_posicao(67, 19, ATIVO, passaro_amarelo,
                                 5.109999999999999)
     self.assert_passaro_posicao(67, 19, ATIVO, passaro_amarelo, 5.12)
     self.assert_passaro_posicao(67, 18, ATIVO, passaro_amarelo, 5.13)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo,
                                 5.140000000000001)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo, 5.15)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo, 5.16)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo, 5.17)
     self.assert_passaro_posicao(68, 18, ATIVO, passaro_amarelo, 5.18)
     self.assert_passaro_posicao(69, 18, ATIVO, passaro_amarelo,
                                 5.1899999999999995)
     self.assert_passaro_posicao(69, 18, ATIVO, passaro_amarelo, 5.2)
     self.assert_passaro_posicao(69, 18, ATIVO, passaro_amarelo, 5.21)
     self.assert_passaro_posicao(69, 17, ATIVO, passaro_amarelo,
                                 5.220000000000001)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.23)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.24)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.25)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.26)
     self.assert_passaro_posicao(70, 17, ATIVO, passaro_amarelo, 5.27)
     self.assert_passaro_posicao(71, 17, ATIVO, passaro_amarelo,
                                 5.279999999999999)
     self.assert_passaro_posicao(71, 17, ATIVO, passaro_amarelo, 5.29)
     self.assert_passaro_posicao(71, 17, ATIVO, passaro_amarelo, 5.3)
     self.assert_passaro_posicao(71, 16, ATIVO, passaro_amarelo,
                                 5.3100000000000005)
     self.assert_passaro_posicao(71, 16, ATIVO, passaro_amarelo, 5.32)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo, 5.33)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo, 5.34)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo, 5.35)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo,
                                 5.359999999999999)
     self.assert_passaro_posicao(72, 16, ATIVO, passaro_amarelo, 5.37)
     self.assert_passaro_posicao(73, 16, ATIVO, passaro_amarelo, 5.38)
     self.assert_passaro_posicao(73, 15, ATIVO, passaro_amarelo,
                                 5.390000000000001)
     self.assert_passaro_posicao(73, 15, ATIVO, passaro_amarelo, 5.4)
     self.assert_passaro_posicao(73, 15, ATIVO, passaro_amarelo, 5.41)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo, 5.42)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo, 5.43)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo,
                                 5.4399999999999995)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo, 5.45)
     self.assert_passaro_posicao(74, 15, ATIVO, passaro_amarelo, 5.46)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo,
                                 5.470000000000001)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo, 5.48)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo, 5.49)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo, 5.5)
     self.assert_passaro_posicao(75, 14, ATIVO, passaro_amarelo, 5.51)
     self.assert_passaro_posicao(76, 14, ATIVO, passaro_amarelo, 5.52)
     self.assert_passaro_posicao(76, 14, ATIVO, passaro_amarelo,
                                 5.529999999999999)
     self.assert_passaro_posicao(76, 13, ATIVO, passaro_amarelo, 5.54)
     self.assert_passaro_posicao(76, 13, ATIVO, passaro_amarelo, 5.55)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo,
                                 5.5600000000000005)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo, 5.57)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo, 5.58)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo, 5.59)
     self.assert_passaro_posicao(77, 13, ATIVO, passaro_amarelo, 5.6)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo,
                                 5.609999999999999)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo, 5.62)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo, 5.63)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo,
                                 5.640000000000001)
     self.assert_passaro_posicao(78, 12, ATIVO, passaro_amarelo, 5.65)
     self.assert_passaro_posicao(79, 12, ATIVO, passaro_amarelo, 5.66)
     self.assert_passaro_posicao(79, 12, ATIVO, passaro_amarelo, 5.67)
     self.assert_passaro_posicao(79, 11, ATIVO, passaro_amarelo, 5.68)
     self.assert_passaro_posicao(79, 11, ATIVO, passaro_amarelo,
                                 5.6899999999999995)
     self.assert_passaro_posicao(79, 11, ATIVO, passaro_amarelo, 5.7)
     self.assert_passaro_posicao(80, 11, ATIVO, passaro_amarelo, 5.71)
     self.assert_passaro_posicao(80, 11, ATIVO, passaro_amarelo,
                                 5.720000000000001)
     self.assert_passaro_posicao(80, 11, ATIVO, passaro_amarelo, 5.73)
     self.assert_passaro_posicao(80, 10, ATIVO, passaro_amarelo, 5.74)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo, 5.75)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo, 5.76)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo, 5.77)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo,
                                 5.779999999999999)
     self.assert_passaro_posicao(81, 10, ATIVO, passaro_amarelo, 5.79)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo, 5.8)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo,
                                 5.8100000000000005)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo, 5.82)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo, 5.83)
     self.assert_passaro_posicao(82, 9, ATIVO, passaro_amarelo, 5.84)
     self.assert_passaro_posicao(83, 9, ATIVO, passaro_amarelo, 5.85)
     self.assert_passaro_posicao(83, 8, ATIVO, passaro_amarelo,
                                 5.859999999999999)
     self.assert_passaro_posicao(83, 8, ATIVO, passaro_amarelo, 5.87)
     self.assert_passaro_posicao(83, 8, ATIVO, passaro_amarelo, 5.88)
     self.assert_passaro_posicao(84, 8, ATIVO, passaro_amarelo,
                                 5.890000000000001)
     self.assert_passaro_posicao(84, 8, ATIVO, passaro_amarelo, 5.9)
     self.assert_passaro_posicao(84, 8, ATIVO, passaro_amarelo, 5.91)
     self.assert_passaro_posicao(84, 7, ATIVO, passaro_amarelo, 5.92)
     self.assert_passaro_posicao(84, 7, ATIVO, passaro_amarelo, 5.93)
     self.assert_passaro_posicao(85, 7, ATIVO, passaro_amarelo,
                                 5.9399999999999995)
     self.assert_passaro_posicao(85, 7, ATIVO, passaro_amarelo, 5.95)
     self.assert_passaro_posicao(85, 7, ATIVO, passaro_amarelo, 5.96)
     self.assert_passaro_posicao(85, 6, ATIVO, passaro_amarelo,
                                 5.970000000000001)
     self.assert_passaro_posicao(85, 6, ATIVO, passaro_amarelo, 5.98)
     self.assert_passaro_posicao(86, 6, ATIVO, passaro_amarelo, 5.99)
     self.assert_passaro_posicao(86, 6, ATIVO, passaro_amarelo, 6.0)
     self.assert_passaro_posicao(86, 6, ATIVO, passaro_amarelo, 6.01)
     self.assert_passaro_posicao(86, 5, ATIVO, passaro_amarelo, 6.02)
     self.assert_passaro_posicao(86, 5, ATIVO, passaro_amarelo, 6.03)
     self.assert_passaro_posicao(87, 5, ATIVO, passaro_amarelo, 6.04)
     self.assert_passaro_posicao(87, 5, ATIVO, passaro_amarelo, 6.05)
     self.assert_passaro_posicao(87, 5, ATIVO, passaro_amarelo, 6.06)
     self.assert_passaro_posicao(87, 5, ATIVO, passaro_amarelo, 6.07)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.08)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.09)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.1)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.11)
     self.assert_passaro_posicao(88, 4, ATIVO, passaro_amarelo, 6.12)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.13)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.14)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.15)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.16)
     self.assert_passaro_posicao(89, 3, ATIVO, passaro_amarelo, 6.17)
     self.assert_passaro_posicao(90, 2, ATIVO, passaro_amarelo, 6.18)
     self.assert_passaro_posicao(90, 2, ATIVO, passaro_amarelo, 6.19)
     self.assert_passaro_posicao(90, 2, ATIVO, passaro_amarelo, 6.2)
     self.assert_passaro_posicao(90, 2, ATIVO, passaro_amarelo, 6.21)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.22)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.23)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.24)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.25)
     self.assert_passaro_posicao(91, 1, ATIVO, passaro_amarelo, 6.26)
     self.assert_passaro_posicao(92, 0, ATIVO, passaro_amarelo, 6.29)
     passaro_amarelo.colidir_com_chao()
     self.assertEqual(DESTRUIDO, passaro_amarelo.status)
コード例 #26
0
ファイル: python_birds.py プロジェクト: zuca1000/pythonbirds
# -*- coding: utf-8 -*-
from atores import PassaroVermelho, PassaroAmarelo, Porco, Obstaculo
from fase import Fase
import placa_grafica

fase_exemplo = Fase()
passaros = [PassaroVermelho(3, 3), PassaroAmarelo(3, 3), PassaroAmarelo(3, 3)]
porcos = [Porco(78, 1), Porco(70, 1)]
obstaculos = [Obstaculo(31, 10)]

fase_exemplo.adicionar_passaro(*passaros)
fase_exemplo.adicionar_porco(*porcos)
fase_exemplo.adicionar_obstaculo(*obstaculos)

# Solução para ganhar
# fase_exemplo.lancar(45, 1)
# fase_exemplo.lancar(63, 3)
# fase_exemplo.lancar(23, 4)

if __name__ == '__main__':
    placa_grafica.animar(fase_exemplo)