class JogoPedraPapelTesoura(Jogo):
    def __init__(self):
        self.__textos = dicionario
        self.__propriedades = propriedades
        print(self.__propriedades)
        self.__valor_tentativa = ""
        self.__pontuacao = PontuacaoJogos("pedra_papel_tesoura")

    def introducao(self):
        print(self.__textos.introducao)

    def interacao(self):
        self.__pedra_papel_tesoura = PedraPapelTesoura(self.__sorteia())
        self.__pontuacao.pontos_iniciais(
            self.__propriedades['pontos_iniciais'])

        total_de_tentativas = self.__propriedades['tentativas']
        print(self.__textos.interacoes.format(total_de_tentativas))

        try:
            self.__valor_tentativa = int(input(self.__textos.informe_entrada))
            self.acertou = self.__pedra_papel_tesoura.jogo(
                self.__valor_tentativa)

            if not self.acertou:
                self.__pontuacao.perdeu_pontos(
                    self.__propriedades['pontos_decremento'])

        except ValueError as erro:
            print(erro)

    def pontuacao_rodada(self):
        return self.__pontuacao.pontuacao_rodada()

    def mensagem_final(self):
        print(self.__textos.espacamento)
        if self.acertou:
            print(
                self.__textos.mensagem_final_acertou.format(
                    self.__pedra_papel_tesoura.valor_sorteado().name,
                    EnumPPT(self.__valor_tentativa).name))
        else:
            print(
                self.__textos.mensagem_final_errou.format(
                    self.__pedra_papel_tesoura.valor_sorteado().name,
                    EnumPPT(self.__valor_tentativa).name))

    def __sorteia(self):
        return random.choice(list(EnumPPT))
    def interacao(self):
        self.__pedra_papel_tesoura = PedraPapelTesoura(self.__sorteia())
        self.__pontuacao.pontos_iniciais(
            self.__propriedades['pontos_iniciais'])

        total_de_tentativas = self.__propriedades['tentativas']
        print(self.__textos.interacoes.format(total_de_tentativas))

        try:
            self.__valor_tentativa = int(input(self.__textos.informe_entrada))
            self.acertou = self.__pedra_papel_tesoura.jogo(
                self.__valor_tentativa)

            if not self.acertou:
                self.__pontuacao.perdeu_pontos(
                    self.__propriedades['pontos_decremento'])

        except ValueError as erro:
            print(erro)
 def test_jogar_pedra_contra_pedra_para_perder(self):
     jogo = PedraPapelTesoura(EnumPPT.PEDRA)
     teste = jogo.jogo(1)
     self.assertEqual(teste, False)
 def test_jogar_papel_contra_tesoura_para_peder(self):
     jogo = PedraPapelTesoura(EnumPPT.TESOURA)
     teste = jogo.jogo(2)
     self.assertEqual(teste, False)
 def test_jogar_pedra_contra_tesoura_para_ganhar(self):
     jogo = PedraPapelTesoura(EnumPPT.TESOURA)
     teste = jogo.jogo(1)
     self.assertEqual(teste, True)
 def test_jogar_tesoura_contra_papel_para_ganhar(self):
     jogo = PedraPapelTesoura(EnumPPT.PAPEL)
     teste = jogo.jogo(3)
     self.assertEqual(teste, True)