Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Código final

Boa tarde!

Implementei algumas funcionalidades em meu código além do que é passado no curso:

  • Ao informar opções inválidas em qualquer um dos input (jogo escolhido, nível do jogo etc.), o usuário receberá uma mensagem de opção inválida e será solicitado novamente que insira sua escolha.
  • Ao final de cada partida, são dadas 3 opções ao usuário: uma nova partida do mesmo jogo, retornar ao menu principal (onde poderá escolher qual jogo quer jogar), ou sair. Estas 3 opções foram definidas em uma função no arquivo jogos.py, que é acessada nos outros dois arquivos ao final das partidas.

Além disso, fiz algumas alterações no código em si, como na formatação de strings, utilização dos if/elif/else etc.

Gostaria da opinião de vocês, acham que ficou bom o código? Ou têm alguma sugestão de melhoria?

Seguem:

jogos.py

import adivinhacao
import forca
import jogos

def main():
    print('******************\nEscolha o seu jogo!\n******************')
    print('1 - Forca\n2 - Adivinhação')

    jogo = int(input('Escolha um jogo:'))
    if (jogo == 1):
        print('Jogando forca.')
        forca.main()
    elif (jogo == 2):
        print('Jogando adivinhação.')
        adivinhacao.main()
    else:
        while jogo not in [1, 2]:
            jogo = int(input('Opção inválida! Escolha um jogo:'))

def func_fazer_agora(jogo_escolhido):
    print('Fim de jogo.\n'
          'O que você gostaria de fazer agora?\n'
          '1 - Nova partida\n'
          '2 - Retornar ao menu principal\n'
          '3 - Sair')
    fazer_agora = int(input())
    if (fazer_agora == 1):
        jogo_escolhido.main()
    elif (fazer_agora == 2):
        main()
    elif (fazer_agora == 3):
        pass
    else:
        while fazer_agora not in [1, 2, 3]:
            print('Opção inválida.\n'
                  'O que você gostaria de fazer agora?\n'
                  '1 - Nova partida\n'
                  '2 - Retornar ao menu principal\n'
                  '3 - Sair')
            fazer_agora = int(input())

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

adivinhacao.py

import random as rd
import jogos
import adivinhacao

def main():
    print('*********************************\nBem vindo ao jogo de Adivinhação!\n*********************************')
    print('Qual o nível de dificuldade?\n1 - Fácil\n2 - Médio\n3 - Difícil')
    nivel = int(input('Digite o nível de dificuldade escolhido (1 a 3):'))

    while nivel not in [1, 2, 3]:
        nivel = int(input('Opção inválida!\nDigite o nível de dificuldade escolhido (1 a 3):'))

    if nivel == 1:
        total_de_tentativas = 20
    elif nivel == 2:
        total_de_tentativas = 10
    elif nivel == 3:
        total_de_tentativas = 5

    pontos = 1000
    numero_secreto = rd.randint(1, 100)
    chute = 0
    acertou = False
    for tentativa in range(1, total_de_tentativas + 1):
        print('*****************\nTentativa {} de {}.'.format(tentativa, total_de_tentativas))
        chute = int(input('Digite um número entre 1 e 100:'))

        if (chute < 1 or chute > 100):
            print('Você deve digitar um número entre 1 e 100.')
            continue

        chute_maior = chute > numero_secreto
        chute_menor = chute < numero_secreto
        acertou = chute == numero_secreto
        pontos_perdidos = abs(numero_secreto - chute)
        pontos -= pontos_perdidos

        print(f'Você digitou {chute}.')
        if(chute_maior):
            print('Você errou! Seu chute foi maior que o número secreto.')
        elif(chute_menor):
            print('Você errou! Seu chute foi menor que o número secreto.')
        elif(acertou):
            print(f'Você acertou e fez {pontos} pontos!')
            break
    if not acertou:
        print(f'O número secreto era {numero_secreto}. Você fez {pontos} pontos.')

    jogos.func_fazer_agora(adivinhacao)


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

forca.py

import jogos
import forca

def main():
    print('****************************\nBem vindo ao jogo da Forca!\n****************************')
    jogos.func_fazer_agora(forca)

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

Agradeço desde já!

1 resposta
solução!

Olá, Thainara! Tudo bem? ^^

Seu jogo ficou ótimo! Parabéns!

As alterações que realizou demonstram que você compreendeu o que foi proposto e não parou por ai.

É muito bacana ver seu empenho, continue mergulhando e conte com a gente nessa jornada!

Até mais! =)