3.14 Exercícios - Jogo Com While

  1. 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

  1. 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 - 1

OBS: Não esqueça de indentar o código dentro do bloco while para não receber erro de sintaxe.

  1. 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 =

  1. 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

  1. 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 + 1
print('Fim do jogo')
  1. 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’.

  1. 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!') break

elif(maior):

restante do código‌

  1. Teste o programa e veja se tudo está funcionando como o esperado.

⬅️ Capítulo Anterior | Próximo Capítulo ➡️