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)
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))
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)
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())
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)
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
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)
def test_adicionar_peca(self): jogador = Jogador() porta_avioes = PortaAvioes(posicao=[0,0], is_horizontal=True) jogador.adicionar_embarcacao(embarcacao=porta_avioes)
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())
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)