3.14 Exercícios - Jogo Com While
- Daremos ao usuário do jogo um número máximo de tentativas. Abra o arquivo adivinhacao.py na pasta jogos e atribua a variável total_de_tentativas com valor 3, e acrescente o bloco do comando while :
numero_secreto =
total_de_tentativas =
while(ainda há total_de_tentativas): executa o código
- Resta agora a expressão ainda há. A ideia é que o usuário tenha 3 tentativas, representada no código pela variável total_de_tentativas . A cada rodada subtraímos 1 do valor dessa variável, até o valor chegar a 0, que é quando devemos sair do while . Logo, vamos executá-lo enquanto a variável total_de_tentativas for maior do que 0:
numero_secreto =
total_de_tentativas =
while (total_de_tentativas > 0):
chute = int(input(‘Digite o seu número: ’)) print(‘Você digitou: ’, chute)
acertou = chute == numero_secreto maior = chute > numero_secreto menor = chute < numero_secreto
if(acertou):
print('Você acertou') elif(maior):print('Você errou! O seu chute foi maior que o número secreto') elif(menor):print('Você errou! O seu chute foi menor que o número secreto') total_de_tentativas = total_de_tentativas - 1OBS: Não esqueça de indentar o código dentro do bloco while para não receber erro de sintaxe.
- Além das tentativas, podemos apresentar qual o número da rodada que o usuário está jogando para deixar claro quantas tentativas ele têm. Para isso vamos criar a variável rodada , que começa com o valor 1:
total_de_tentativas =
rodada =
- E vamos imprimi-la antes do usuário digitar o seu chute:
total_de_tentativas =
rodada =
while (total_de_tentativas > 0):
print(f'Tentativa {} de {} {rodada, total_de_tentativas}') chute = int(input('Digite o seu número: '))print('Você digitou: ', chute)restante do código aqui
- E para a variável total_de_tentativas continuar com o valor 3, não vamos mais subtrair 1 do seu valor, e sim adicionar 1 ao valor da variável rodada :
total_de_tentativas =
rodada =
while (total_de_tentativas > 0):
print(f'Tentativa {} de {} {rodada, total_de_tentativas}')chute = int(input(‘Digite o seu número: ’)) print(‘Você digitou: ’, chute)
acertou = numero_secreto == chute maior = chute > numero_secreto menor = chute < numero_secreto
if (acertou):print('Você acertou!') elif (maior):print('Você errou! O seu chute foi maior que o número secreto') elif (menor):print('Você errou! O seu chute foi menor que o número secreto') rodada = rodada + 1print('Fim do jogo')- Por fim, precisamos modificar a condição. Já que o total_de_tentativas permanecerá com o valor 3, o código precisa ficar executando enquanto o valor da rodada for menor ou igual ao total de tentativas:
total_de_tentativas =
rodada =
while (rodada ⇐ total_de_tentativas):
print(f'Tentativa {} de {} {rodada, total_de_tentativas}') chute_str = input('Digite o seu número: ')restante do código
Agora conseguimos imprimir para o usuário quantas tentativas restantes ele possui! Teste chamando seu arquivo adivinhacao.py com o comando ‘python3’.
- Falta arrumar uma coisa: quando o usuário acerta, o jogo continua pedindo um novo chute. Queremos terminar a execução do programa quando o usuário acerta. Para isso usamos o comando break. Quando o interpretador encontrar o comando break ele para a execução do programa. vamos acrescentar isso quando o usuário acertar, ou seja, no primeiro comando if após a exibição da mensagem de acerto:
if(acertou):
print('Você acertou!') breakelif(maior):
restante do código
- Teste o programa e veja se tudo está funcionando como o esperado.