1
resposta

Mão na massa: Modularizando o jogo

jogos.py

import forca
import adivinhacao

if __name__ == '__main__':

    print("*********************************")
    print("********Escolha seu jogo!********")
    print("*********************************")

    print("(1) Forca (2) Adivinhação")

    jogo = int(input("Qual jogo? "))

    if jogo == 1:
        forca.jogar()
    elif jogo == 2:
        adivinhacao.jogar()
    else:
        pass

Depois que eu percebi que esse "else: pass" ficou meio inútil, mas deixei assim por que pensei em tratar depois. adivinhacao.py

import random


def jogar():

    print("*********************************")
    print("Bem vindo ao jogo de adivinhacao!")
    print("*********************************")

    numero_secreto = random.randint(1, 101)

    while True:
        pontos = 1000
        rodada = 1
        tentativas = 0

        print("Qual o nível de dificuldade? ")
        print("(1) Fácil (2) Médio (3) Difícil")
        nivel = int(input("Defina um nível: "))

        if nivel == 1:
            tentativas = 20
        elif nivel == 2:
            tentativas = 10
        elif nivel == 3:
            tentativas = 5
        else:
            print("Digite um numero entre 1 e 3")
            continue

        for rodada in range(1, tentativas+1):
            print(f"Tentativa {rodada} de {tentativas}")
            chute = int(input("Digite um numero entre 1 e 100: "))

            if chute < 1 or chute > 100:
                print("Digite um numero entre 1 e 100!")
                continue

            acertou = chute == numero_secreto
            maior = chute > numero_secreto
            menor = chute < numero_secreto

            if acertou:
                print("Você acertou!")
                print("Sua pontuação foi", pontos, "!")
                break
            elif maior:
                print("o seu chute foi maior que o numero secreto.")
                pontos = pontos - ((chute - numero_secreto) * nivel)
            else:
                print("o seu chute foi menor que o numero secreto.")
                pontos = pontos - ((numero_secreto - chute) * nivel)

            if pontos <= 0:
                print("Você perdeu todos os pontos!")
                pontos = 0
                break

        break

    print("Fim do jogo.", numero_secreto, "era o numero secreto!")

forca.py

def jogar():

    print("*********************************")
    print("Bem vindo ao jogo de forca!")
    print("*********************************")

    print("Fim do jogo.")
1 resposta

Oii Henrique, tudo certinho?

Você seguiu corretamente as instruções para modularizar os jogos de "Forca" e "Adivinhação"! Parabéns por sua dedicação.

Em relação ao else: pass no código jogos.py, você está correto em dizer que ele é um pouco inútil no momento. O comando pass em Python é usado como um espaço reservado para quando o código ainda não está completo. Ele permite que você trate ou ignore condições que não estão prontas para serem preenchidas.

Se você quiser melhorar essa parte do código, poderia adicionar uma mensagem de erro para o usuário quando ele não escolher 1 ou 2. Por exemplo:

if jogo == 1:
    forca.jogar()
elif jogo == 2:
    adivinhacao.jogar()
else:
    print("Opção inválida! Por favor, escolha 1 para Forca ou 2 para Adivinhação.")

Dessa forma, o usuário receberá um feedback útil se inserir uma entrada inválida. Legal, né?

Abração!