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

[Sugestão] Sugestão de melhorias no Jogo de Adivinhação

Oi pessoal! Estava copiando o código que foi explicado durante as aulas e decidi fazer algumas melhorias para o jogo ficar mais dinâmico. Primeiro, o usuário informa o nome. Ofereci ao usuário a possibilidade de escolher qual o limite superior do sorteio, não deixando o intervalo restrito a "1 a 100". Também deixei à critério do usuário escolher qual o número máximo de chutes que ele gostaria de realizar. Por fim, o usuário não pode chutar um número acima do limite superior que ele mesmo escolheu. É isso! Aceito qualquer sugestão de melhoria =]

import random

print("*********************************")
print("Bem-vindo ao jogo de adivinhação!")
print("*********************************")

nome_usuario = input("Qual o seu nome?")
limite_superior = int(input("{}, vamos sortear um número que está no intervalo de 1 até o número que você definir. Qual o número limite que você quer para o nosso jogo?".format(nome_usuario)))
numero_tentativas = int(input("{}, você quer ter quantas chances de chutar um número?".format(nome_usuario)))

numero_secreto = random.randrange(1, limite_superior + 1) # o "+ 1" é para incluir o número limite_superior no sorteio
rodada = 1

print(numero_secreto)  # Uso isso aqui quando quero descobrir qual é o número "SECRETO" quando estou testando o código =]

for rodada in range(1, numero_tentativas + 1):

    print("Essa é a tentativa {} de {} tentativas disponíveis.".format(rodada, numero_tentativas))
    chute = int(input("Hora de fazer o seu chute, {}. Digite um número entre 1 e {}: ".format(nome_usuario, limite_superior)))
    print("Você digitou ", chute)

    if(chute < 1 or chute > limite_superior):
        print('Ops! Você deve chutar um número entre 1 e {}. Digite novamente'.format(limite_superior))
        continue

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

    if(acertou):
        print("Você acertou o número secreto. Parabéns, {}!".format(nome_usuario))
        break
    else:
        if(maior):
            print("Você errou. Infelizmente não acertou o número secreto. O seu chute foi maior que o número secreto.")
        elif(menor):
            print("Você errou. Infelizmente não acertou o número secreto. O seu chute foi menor que o número secreto.")

print("Fim de jogo. Até a próxima!")
2 respostas
solução!

Olá Amanda, tudo bem com você?.

Meus parabéns pelo desenvolvimento do código, fico feliz que tenha compartilhado com a comunidade do fórum Alura. Seu empenho indo além do proposto nas aulas é muito importante na fixação do que está aprendendo junto a Alura. A interação com o usuário adicionada no código ficou excelente, trazendo uma melhor imersão no jogo e uma nova dinâmica ao jogarmos.

Como dica para implementação digo que podemos simplificar a criação do cabeçalho com o uso da multiplicação de strings. Quando queremos que uma determinada string seja repetida basta multiplicarmos ela. Sabendo disso podemos implementar no cabeçalho do seu código, como abaixo:

print(33 * "*")
print("Bem-vindo ao jogo de adivinhação!")
print(33 * "*")

No código acima, a string "*" será repetida 33 vezes. Após a implementação salve o arquivo e execute-o.

Caso queira explorar mais funções sobre o uso do asterisco em python, além de duplicar caracteres, recomendo a leitura do seguinte artigo:

O conteúdo recomendado acima está em inglês, o uso da língua inglesa é bem comum na área de tecnologia, mas não se preocupe, caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Fico à disposição.

Abraços e bons estudos.

Olá Felippe, tudo ótimo. Vou implementar a sugestão e ler o artigo indicado. Muito obrigada! =]

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software