1
resposta

Projeto - 11 Jogo de adivinhar o número

import os
import random


def texto_estilizado(texto):
    os.system('clear')
    print(f'{"*" * (len(texto) + 10)}')
    print(f'*{texto.center(8 + len(texto))}*')
    print(f'{"*" * (len(texto) + 10)}')


def menu():
    texto_estilizado('Descubra o Número Misterioso')
    print('\n1. Jogar')
    print('2. Regras')
    print('3. Sair')


def menu_escolhas():
    menu()
    while True:
        try:
            escolha = int(input('\nEscolha uma opção: '))
            if escolha == 1:
                jogar()
            elif escolha == 2:
                regras()
            elif escolha == 3:
                fechar_programa()
                break
            else:
                print('Escolha Inválida')
        except ValueError:
            os.system('clear')
            menu_escolhas()


def jogar():
    os.system('clear')
    texto_estilizado('Descubra o Número Misterioso')

    numero_misterioso = random.randint(1, 100)
    tentativas = 0

    while True:
        try:
            tentativa = int(input('\nDigite um número entre 1 e 100: '))
            tentativas += 1

            if tentativa < numero_misterioso:
                print('O número misterioso é maior!')
            
            elif tentativa > numero_misterioso:
                print('O número misterioso é menor!')

            else:
                texto_estilizado('Parabéns!')
                print(f'\nParabéns! Você acertou o número misterioso ({numero_misterioso}) em {tentativas} tentativas!!')
                break

        except ValueError:
            print('Escolha Inválida! Escolha um número entre 1 e 100.')
    
    print('\nDeseja jogar novamente?')
    print('\n1. Sim')
    print('2. Não')
    while True:
        try:
            escolha = int(input('\nEscolha uma opção: '))
            if escolha == 1:
                jogar()
            elif escolha == 2:
                fechar_programa()
                break
        
        except ValueError:
            print('Escolha Inválida')

    


def regras():
    os.system('clear')
    texto_estilizado('Regras')
    print(
        'O programa gerará um número aleatório entre 1 e 100. Descubra qual o número com a menor quantidade de tentativas.'
    )


def fechar_programa():
    os.system('clear')
    texto_estilizado('Saindo do Jogo...')
    exit()


def main():
    os.system('clear')
    menu_escolhas()


if __name__ == '__main__':
    main()
1 resposta

Olá, Daniel! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de funções para organizar o fluxo do jogo com Python, utilizou muito bem o tratamento de exceções para evitar erros de entrada e ainda compreendeu a importância da modularização para deixar o código mais claro e reutilizável.

Uma dica interessante para o futuro é implementar uma verificação para limitar o número de tentativas, tornando o jogo mais desafiador. Assim:

if tentativas >= 10:
    print("Suas tentativas acabaram! O número misterioso era", numero_misterioso)
    break

Isso faz com que o jogador tenha um limite de tentativas, aumentando a emoção da partida.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!