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

Jogo de jogar um dado

Olá, estava tentando fazer um programa onde o usuário é perguntado se ele quer jogar um dado, e se a resposta for sim, será retornado um número de 1 a 6 para o usuário, se for não, o programa para, e se for diferente de sim ou não, o programa pede para digitar sim ou não. Só que depois do "sim", os números se repetem (geralmente 2 vezes) antes de mudar, e tem vezes que eu digito "não" (depois de ter digitado "sim") e o programa continua. Alguém pode me ajudar?

Obs: o código começa no "import random". (eu não consegui colocar como código essa primeira parte)

`import random

decisão = input("Você gostaria de jogar o dado? ")

while decisão: decisão = decisão.strip() numero = random.randrange(1, 7)

if(decisão == "sim"):
    print(f"O número que caiu foi: {numero}")
    pergunta = input("Deseja jogar novamente? ")

    if(pergunta == "sim"):
        print(f"O número que caiu foi: {numero}")
        pergunta = input("Deseja jogar novamente? ")

    elif(pergunta == "não"):
        print("Fim do jogo!")
        break

    else:
        pergunta = input("Por favor digite sim ou não: ")

elif(decisão == "não"):
    print("Fim do jogo!")
    break

else:
    decisão = input("Por favor digite sim ou não: ")

`

2 respostas

Isso aqui também aconteceIsso aqui também acontece

solução!

Fala Guilherme. Fiz alguns ajustes no seu código. Veja abaixo se ajuda. Uma dica de boas práticas, evite usar acentuação e caracteres especiais nos nomes das variáveis, exemplo: decisão seria melhor como decisao

Acredito que a repetição do dado acontecia porque você pedia para repetir a exibição da variável antes de rodar novamente o While, ou seja, ele não atribuia outro valor, apenas exibia o mesmo. Após rodar o laço a variável randômica ganha novo valor.

Abaixo fiz a tratativa para somente aceitar "Sim" ou "Não", mesmo que o usuário digite minúsculo ou sem acento irá aceitar o input.

Espero ter ajudado. Abraços.

import random

decisao = input("Você gostaria de jogar o dado? ")

while decisao:
    decisao = decisao.strip().upper()
    numero = random.randrange(1, 7)

    if(decisao == "SIM"):
        print(f"O número que caiu foi: {numero}")
        decisao = input("Deseja jogar novamente (SIM OU NÃO)? ").upper()

    elif(decisao == "NÃO" or decisao =="NAO"):
        break

    else:
        print("Digite apenas SIM ou NÃO....")
        decisao = input("Deseja jogar novamente (SIM OU NÃO)? ").upper()

if decisao == "NÃO" or decisao == "NAO":
    print("Fim de Jogo! Volte Logo...")