Пример #1
0
 def test_get_tabuleiro_atirado(self):
     
     jogador = Jogador()
     
     embarcacao1 = PortaAvioes(posicao=(5,0), is_horizontal=True)
     embarcacao2 = Submarino(posicao=(3,5), is_horizontal=False)
     
     jogador.adicionar_embarcacao(embarcacao1)
     jogador.adicionar_embarcacao(embarcacao2)
     
     jogador.atirar((3,5))
     jogador.atirar((5,0))
     jogador.atirar((2,0))
     
     a = Jogador.AGUA
     e = Jogador.EMBARCACAO
     ta = Jogador.TIRO_AGUA
     te = Jogador.TIRO_EMBARCACAO
     
     tabuleiro = [
         [a, a, ta, a, a, te, e, e, e, e],
         [a, a, a, a, a, a, a, a, a, a],
         [a, a, a, a, a, a, a, a, a, a],
         [a, a, a, a, a, a, a, a, a, a],
         [a, a, a, a, a, a, a, a, a, a],
         [a, a, a, te, a, a, a, a, a, a],
         [a, a, a, e, a, a, a, a, a, a],
         [a, a, a, e, a, a, a, a, a, a],
         [a, a, a, a, a, a, a, a, a, a],
         [a, a, a, a, a, a, a, a, a, a],
     ]
     
     self.assertEquals(jogador.get_tabuleiro(), tabuleiro)
Пример #2
0
    def test_atirar_duas_vezes_no_mesmo_lugar(self):
        jogador = Jogador()

        jogador.atirar((2,4))
        jogador.atirar((0,0))
        
        with self.assertRaises(ValueError):            
            jogador.atirar((2,4))
Пример #3
0
    def test_afundar_embarcacao(self):
        jogador = Jogador()

        porta_avioes = PortaAvioes(posicao=(0,0), is_horizontal=True)
        submarino = Submarino(posicao=(2,2), is_horizontal=False)
        
        jogador.adicionar_embarcacao(porta_avioes)
        jogador.adicionar_embarcacao(submarino)

        jogador.atirar((2,2))
        jogador.atirar((2,3))
        submarino = jogador.atirar((2,4))
        
        self.assertTrue(submarino.afundado)
Пример #4
0
 def test_tentar_acertar_embarcacao(self):
     jogador = Jogador()
     porta_avioes = PortaAvioes(posicao=(0,0), is_horizontal=True)
     submarino = Submarino(posicao=(2,2), is_horizontal=False)
     
     jogador.adicionar_embarcacao(porta_avioes)
     jogador.adicionar_embarcacao(submarino)
     
     embarcacao_acertada = jogador.atirar((2,4))
     self.assertEqual(embarcacao_acertada, submarino)
Пример #5
0
    def test_status_jogo(self):
        
        jogo = Jogo()        
        
        jogador1 = Jogador()
        jogador1.adicionar_embarcacao(Submarino(is_horizontal=True, posicao=(0,0)))
        
        jogador2 = Jogador()
        jogador2.adicionar_embarcacao(Submarino(is_horizontal=True, posicao=(0,0)))
        
        jogo.jogadores.append(jogador1)
        jogo.jogadores.append(jogador2)

        self.assertFalse(jogo.is_terminado())
        
        jogador1.atirar((0,0))
        jogador1.atirar((1,0))
        jogador1.atirar((2,0))
        
        self.assertTrue(jogo.is_terminado())
Пример #6
0
    def test_todas_embarcacoes_afundadas(self):
        
        jogador = Jogador()
        jogador.adicionar_embarcacao(PortaAvioes(posicao=(5,0), is_horizontal=True))

        self.assertFalse(jogador.is_terminado())
        
        jogador.atirar((5,0))
        jogador.atirar((6,0))
        jogador.atirar((7,0))
        jogador.atirar((8,0))
        jogador.atirar((9,0))
        
        self.assertTrue(jogador.is_terminado())