1
resposta

SÓ UMA IDÉIA - Laço para limitar a escolha de NIVEL de Dificuldade e de JOGO

Olá pessoal. Estou iniciando no mundo da programação. Eu queria compartilhar o meu código e dizer que me incomodava o fato de quando nos é dado a opção de escolher que nivel de dificuldade do jogo , se digitasse algo que nao fosse 1 ou 2 ou 3 o programa parava. Então fiz um Laço com while para "forçar" que o usuário escolhesse uma das opções possíveis.

print("********************************")
print("Bem vindo ao jogo de adivinhação!")
print("********************************")
import random
numero_secreto =random.randrange(0,101)
tentativas=0
pontos = 1000

print('Qual o nível de dificuldade?')
print("(1) Fácil , (2) Médio e (3) Dificil")

nivel = int(input("Defina um Nível: "))

while(nivel != 1) and (nivel != 2) and (nivel  != 3):

    print("Você não escolheu um nível correto!")
    nivel = int(input("Defina um Nível: "))

else:

    if   nivel == 1:
        tentativas = 20
    elif nivel == 2:
        tentativas = 10
    else:
        tentativas =  5

for rodada in range(1,tentativas+1):
    print("Essa é a tentativa {} de {}".format(rodada,tentativas))
    print('Digite um número entre 1 e 100')
    chute_str = input("Digite o seu Numero: ")
    chute = int(chute_str)
    if (chute < 1 or chute > 100):
        print('Voce digitou um número inválido')
#continue faz com que o laço continue iterando
        continue 
    print("Voce Digitou, ", chute_str)
    acertou = chute == numero_secreto
    maior = chute > numero_secreto
    menor = chute < numero_secreto
    if (acertou):
        print("Você acertou o numero secreto.\nVocê fez {} pontos".format(pontos))
        break
    else:
        if (menor):
            print("Você errou! O chute foi menor que o número secreto")
        elif (maior):
            print("Você errou! O chute foi maior que o número secreto")
        pontos_perdidos = numero_secreto - abs(chute)
        pontos = pontos - pontos_perdidos

else:
    print("Fim de Jogo. Você Perdeu! O número secreto era {}".format(numero_secreto))

Aproveitei e também apliquei no arquivo jogos.py a mesma lógica:

import forca
import adivinhacao


print(36*'*')
print("Escolha o seu Jogo!")
print(36*'*')

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

jogo=0

while (jogo!=1) and (jogo!=2):
    jogo = int(input("Qual Jogo? "))
    continue
else:
    if jogo==1:
        print("Jogo da Adivinhação")
    elif jogo==2:
        print("Jogo da Forca")

É isso. Só pra compartilhar mesmo a idéia. Tudo com os conhecimentos adquiridos até o momento no curso. O que acharam ?

1 resposta

Maaaano, que ideia massa! Eu até passei por isso, tipo, quando eu digitava valores maiores que 3, vi que ele sempre colocava a opção difícil. Vou implementar no meu isso aí. Valeu!