Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] O numero de Tentativas é maior que o Normal

Não consegui encontrar onde está causando o conflito nos meus códigos... algumas vezes ele coloca que os números de tentativas foram mais vezes do que realmente foi.

ErroDeTentativas.O meu código está abaixo:

alert ("bem vindos ao jogo da Adivinhação!");

let numeroMaximo = 500;
let numeroSecreto = parseInt(Math.random( ) * numeroMaximo + 1); 
let chute;
let tentativas = 1;

while (chute != numeroSecreto){
  chute = prompt(`Adivinhe um numero de 0 a ${numeroMaximo} !! `);
      if (chute === numeroSecreto) {
        break 
      } 
    else {
        if (chute < numeroSecreto) {
        alert (`Errou! O Número secreto está maior que o ${chute}`)
        }
        if (chute > numeroSecreto){
        alert (`Errou! O número secreto está menor que o ${chute}`)
        }
        tentativas += 1
    }
}

let palavraTentativa = tentativas > 1 ? 'vezes' : 'vez';

alert (` você descobriu o numero secreto, ele era ${numeroSecreto}!E você chutou ${tentativas} ${palavraTentativa}!`);
1 resposta
solução!

Olá, Lucas!

Entendo que esteja confuso com o número de tentativas sendo maior do que o esperado.

O problema está na forma como o seu código verifica se o chute é igual ao número secreto. No seu código, mesmo quando o usuário acerta o número, a tentativa ainda é contada como uma tentativa errada, pois a verificação se o chute é igual ao número secreto acontece depois de incrementar o contador de tentativas.

Para resolver isso, você pode mover a verificação de igualdade para o início do loop, antes de incrementar o contador de tentativas. Dessa forma, se o usuário acertar o número, o código sairá do loop sem incrementar o contador de tentativas.

Aqui está o código corrigido:

alert ("bem vindos ao jogo da Adivinhação!");

let numeroMaximo = 500;
let numeroSecreto = parseInt(Math.random( ) * numeroMaximo + 1); 
let chute;
let tentativas = 1;

while (chute != numeroSecreto){
  chute = prompt(`Adivinhe um numero de 0 a ${numeroMaximo} !! `);
  if (chute == numeroSecreto) {
    break;
  } else {
    if (chute < numeroSecreto) {
      alert (`Errou! O Número secreto está maior que o ${chute}`);
    }
    if (chute > numeroSecreto){
      alert (`Errou! O número secreto está menor que o ${chute}`);
    }
    tentativas += 1;
  }
}

let palavraTentativa = tentativas > 1 ? 'vezes' : 'vez';
alert (` você descobriu o numero secreto, ele era ${numeroSecreto}!E você chutou ${tentativas} ${palavraTentativa}!`);

A lógica de programação pode ser desafiadora no início, mas com prática e persistência você vai ficando cada vez mais hábil. Bons estudos!

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