Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Projeto] jogo de adivinhação

segue meu projeto de adivinhação:

import random

def jogar():

 print("*********************************")
    print("Bem vindo ao jogo de Adivinhação!")
    print("*********************************")

    numero_secreto = random.randint(1,101)
    total_de_tentativas = 0
    pontos = 1000


    nivel_de_dificudade = int(input('Escolha um nível de dificuldade ((1)Fácil,(2) Médio ou (3) Difícil): '))
    if (nivel_de_dificudade == 1):
        total_de_tentativas = 10
    elif(nivel_de_dificudade == 2):
        total_de_tentativas = 6
    elif(nivel_de_dificudade == 3):
        total_de_tentativas = 3
    else:
        print('Nível de dificuldade inválido. Escolha entre Fácil, Médio ou Difícil.')
        

    for rodada in range (1,total_de_tentativas + 1):
        print ('tentativa {} de {}' .format(rodada, total_de_tentativas))
        chute = input('digite um número entre 1 e 100:')

        print ('voce digitou o numero', chute)
        chute = int(chute)

        if(chute < 1 or chute > 100):
            print ("O valor deve ser entre 1 e 100.")
            continue

        diferensa = abs(numero_secreto - chute)# usei a diferença tanto para as dicas como para os pontos.
        pontos = pontos - diferensa

        if diferensa == 0:
            print('Você acertou!! Parabéns! Você ganhou e fez {} pontos'.format(pontos))
            break
        elif diferensa == 1: # A parti daqui tem as dicas para facilitar o jogo 
            print('foi na trave')
        elif diferensa <= 5:
            print('Está muito quente!')
        elif diferensa <= 10:
            print('Está quente!')
        elif diferensa <= 20:
            print('Está morno!')
        elif diferensa <= 30:
            print('Está frio!')
        else:
            print('Está congelante!')

    print('Fim do jogo.')
if(__name__ == '__main__'):
    jogar()

eu queria colocar ainda para quando terminar ter a opção de reiniciar o jogo, mas não sei como fazer ainda .

2 respostas
solução!

Olá Manoel!

Primeiramente gostaria de lhe dar o parabéns por concluir esse projeto que ficou muito bacana, muito bem!

Para permitir que o jogador reinicie o jogo após o término, você pode usar um loop e perguntar se eles desejam jogar novamente. Aqui está uma versão modificada do seu código que faz isso:

import random

def jogar():
    print("*********************************")
    print("Bem-vindo ao jogo de Adivinhação!")
    print("*********************************")

    while True:
        numero_secreto = random.randint(1, 101)
        total_de_tentativas = 0
        pontos = 1000

        nivel_de_dificuldade = int(input('Escolha um nível de dificuldade ((1) Fácil, (2) Médio ou (3) Difícil): '))
        if nivel_de_dificuldade == 1:
            total_de_tentativas = 10
        elif nivel_de_dificuldade == 2:
            total_de_tentativas = 6
        elif nivel_de_dificuldade == 3:
            total_de_tentativas = 3
        else:
            print('Nível de dificuldade inválido. Escolha entre Fácil, Médio ou Difícil.')
            continue

        for rodada in range(1, total_de_tentativas + 1):
            print('Tentativa {} de {}'.format(rodada, total_de_tentativas))
            chute = input('Digite um número entre 1 e 100: ')

            print('Você digitou o número', chute)
            chute = int(chute)

            if chute < 1 or chute > 100:
                print("O valor deve estar entre 1 e 100.")
                continue

            diferenca = abs(numero_secreto - chute)
            pontos -= diferenca

            if diferenca == 0:
                print('Você acertou!! Parabéns! Você ganhou e fez {} pontos'.format(pontos))
                break
            elif diferenca == 1:
                print('Foi na trave!')
            elif diferenca <= 5:
                print('Está muito quente!')
            elif diferenca <= 10:
                print('Está quente!')
            elif diferenca <= 20:
                print('Está morno!')
            elif diferenca <= 30:
                print('Está frio!')
            else:
                print('Está congelante!')

        jogar_novamente = input('Deseja jogar novamente? (s/n): ')
        if jogar_novamente.lower() != 's':
            print('Fim do jogo.')
            break

if __name__ == '__main__':
    jogar()

Agora, após cada jogo, o programa pergunta se o jogador deseja jogar novamente. Se o jogador digitar "s" (ou qualquer variação de minúsculas/maiúsculas), o jogo será reiniciado. Se o jogador digitar qualquer outra coisa, o programa encerrará.

Neste código foi feita uma alteração no código para permitir que o jogo seja reiniciado após cada partida. Adicionei um loop principal com while True: que permite ao jogador jogar quantas vezes quiser. Após cada partida, perguntamos se o jogador deseja jogar novamente, como dito anteriormente, foi uma solução até que simples, seu código, fez tudo, muito bem!

Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

obrigado pela dica