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

Só uma sugestão

insira seu código aqui
from random import *
def guessing_game():
    print('Choose the difficult (skip for medium):')
    d=input('(E)asy, (M)edium, (H)ard or (I)mpossible? ').lower()
    if d=='e':
        c=6
    elif d=='m':
        c=5
    elif d=='h':
        c=4
    elif d=='i':
        c=3
    else:
        c=5
    #x=randint(0,int(input()))
    x=randint(0,20)
    #print(x)
    cc=c
    while cc!=0:
        print('\nYou have {} out of {} remaining tries'.format(cc,c))
        y=input() #player's guess
        try:
            y=int(y)
        except:
            print('The secret number is a positive integer not higher than 20')
            continue
        if y not in list(range(0,21)):
            print('The secret number is a positive integer not higher than 20')
            continue
        if x==y:
            print('You won the game')
            break
        else:
            c-=1
            if y>x:
                print('Wrong guess, try lower')
            else:
                print('Wrong guess, try higher')
    if c==0:
        print('You lost the game')
    repeat=input('Wanna play again? (Y/n)')
    if repeat.upper()=='Y':
        guessing_game()
guessing_game()

Eu fiz esse código antes/paralelamente ao assistir as videoaulas, e reparei que o professor optou por colocar o modo difícil no else, o que não faz muito sentido pra mim, se o jogador pular (talvez acidentalmente) a seleção de dificuldade poderia acabar prejudicado, além disso, pra mim faz mais sentido usar o else pensando em que ocasião ele viria a ser chamado, e já que ele escreveu que o 3 seria usado para selecionar a opção difícil, pq não fazer jus a isso? Existem infinitos outros números que não são 1 e 2, por isso gostaria que de sugerir a todos que sempre pensem no que aconteceria com cada possível input.

3 respostas

Olá Shinigami, acredito que o professor optou por colocar o modo difícil no else apenas por uma questão de ensinamento. Porém você teve uma visão muito interessante, já voltada para o UX (user experience). Boa sacada!

Obrigado Diego, eu também reparei que ele converteu o input pra int sem necessidade, já que o input não vai ser usado pra cálculos matemáticos, e sim em um if, eu fico curioso se sou só eu que reparo nessas coisas, ou só eu comento sobre?

solução!

Muito bem observado mas, conforme já comentado, acredito que vários dos passos na criação do código sejam abordagens mais simples apenas por questões didáticas. Suas observações são inerentes de quem já possui alguma lógica de programação.