コード例 #1
0
    def test_get_tabuleiro(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)
        
        a = Jogador.AGUA
        e = Jogador.EMBARCACAO
        
        tabuleiro = [
            [a, a, a, a, a, e, 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, e, 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_adicionar_peca_com_colisao(self):
     jogador = Jogador()
     porta_avioes = PortaAvioes(posicao=(0,0), is_horizontal=True)
     submarino = Submarino(posicao=(0,0), is_horizontal=True)
     
     jogador.adicionar_embarcacao(porta_avioes)
     
     with self.assertRaises(ValueError):
         jogador.adicionar_embarcacao(submarino)
コード例 #4
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())
コード例 #5
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)
コード例 #6
0
ファイル: jogo.py プロジェクト: marcelnicolay/dojo-quatix
    def create_jogador(self):
        jogador = Jogador()
        
        embarcacoes = (PortaAvioes, Encouracado, Submarino, Destroyer, Patrulha)

        for embarcacao_class in embarcacoes:
            
            adicionado = False
            while not adicionado:
                
                try:
                    
                    posicao = (random.randint(0,9), random.randint(0,9))
                    embarcacao = embarcacao_class(posicao=posicao, is_horizontal=(random.choice([True,False])))
                    
                    jogador.adicionar_embarcacao(embarcacao)
                    
                    adicionado = True
                except ValueError:
                    continue
            
        return jogador
コード例 #7
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)
コード例 #8
0
 def test_adicionar_peca(self):
     jogador = Jogador()
     porta_avioes = PortaAvioes(posicao=[0,0], is_horizontal=True)
     
     jogador.adicionar_embarcacao(embarcacao=porta_avioes)
コード例 #9
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())
        
コード例 #10
0
 def test_adicionar_peca_fora_tabuleiro(self):
     jogador = Jogador()
     porta_avioes = PortaAvioes(posicao=[9,9], is_horizontal=True)
     
     with self.assertRaises(ValueError):
         jogador.adicionar_embarcacao(embarcacao=porta_avioes)