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

Por favor, Como fazer para contar quantas tentativas o jogador fez até acertar o número e mostrar na tela, desse código abaixo:

<meta charset="UTF-8">
<style>
    body {
        font-family: Arial, Helvetica, sans-serif;     
    }

    h1 {
        color: blue;
        font-size: 22px;
        margin: 10px 0 10px 15%;
        padding: 20px;
    }
    h2 {
        color: red;
        font-size: 21px;
        margin: 10 0 0 10%;
        padding: 0;

    }
    input {
        color: red;
        font-size: 21px;
        margin: 10 0 0 10%;
        padding: 0;
    }
</style>

    <h2> </h2><h1>Boa Sorte!!!</h1>
<hr>
    <input/> 
    <button>Verificar</button>
<hr>

<script>

function sorteia(n){
    return Math.round(Math.random() * n);  
}

function criaArray (){
    segredos = new Array();
    var contador = 0;

   while(contador < possibilidades){
        var a = sorteia(n)
        if( a! =0 ){
            var achouIgual = false;
            for(var posicao = 0; posicao < segredos.length; posicao++){
                if (segredos[posicao] == a){
                achouIgual = true; 
                break;               
                }
            }
            if(achouIgual == false){
                segredos.push(a)
                contador++;
            }
        }
    }

    return segredos;
}

function verifica(){

        var acertou = false;

    for(var posicao = 0; posicao < segredos.length; posicao++){
        if(chute.value == segredos[posicao]){
            alert("PARABÉNS, VOCÊ ACERTOU!!!");
            segredos = criaArray();//Cria nova lista de numeros sorteados
            console.log(segredos);
            acertou = true; 
            break;
        }
    }

    if(acertou == false ){
        alert("Que pena, Você Errou!!!");                    
    } 



    chute.value = "";
    chute.focus();


}

//Escolher dificuldade do jogo

var dificuldade = parseInt(prompt(`Escolha o nível de dificuldade \n fácil = 1 \n Difícil = 2 \n Muito Dificil = 3`))
var facil = 1;
var dificil = 2;
var muitoDificil = 3;

if (dificuldade==1){
    var possibilidades = 3;
    var n = 10;
    var texto = document.querySelector("h2");
    texto.innerHTML = ("Adivinhe um número sorteado entre 1 e 10.");
}
if (dificuldade==2){
    var possibilidades = 10;
    var n = 100;
    var texto = document.querySelector("h2");
    texto.innerHTML = ("Adivinhe um número sorteado entre 1 e 100.");
}
if (dificuldade==3){
    var possibilidades = 50;
    var n = 1000;
    var texto = document.querySelector("h2");
    texto.innerHTML = ("Adivinhe um número sorteado entre 1 e 1000.");
}


// Criando lista de números sorteados

segredos = criaArray();
console.log(segredos);

// Recebe entrada vazia e com foco

var chute = document.querySelector("input");
chute.focus();

// Botão para verificar se o valor da entrada é igual
//a um dos valores da lista criada.


    var btn = document.querySelector("button");
    btn.onclick = verifica; //Chama a função 


</script>
2 respostas
solução!

Boa tarde, Tiago! Tudo bem?

Está ficando bem legal o seu código, com as dificuldades e a interface estilizada, parabéns!

Referente a contabilizar a quantidade de tentativas do usuário antes de acertar você pode criar uma variável fora das funções e cada vez que entrasse na condição de errar somaria mais um nela. Tipo assim:

<script>
  var quantidadeTentativas = 0;         <<<<<<<<<<<<<<<<<<<

  // function sorteia(n)
  // function criaArray()

  function verifica(){
        var acertou = false;
    for(var posicao = 0; posicao < segredos.length; posicao++){
        if(chute.value == segredos[posicao]){
            alert("PARABÉNS, VOCÊ ACERTOU!!! e usou " + quantidadeTentativas + " tentativas");   <<<<<<<<<<<<<<<<<<<
            segredos = criaArray();//Cria nova lista de numeros sorteados
            quantidadeTentativas = 0;    <<<<<<<<<<<<<<<<<<<
            console.log(segredos);
            acertou = true; 
            break;
        }
    }
    if(acertou == false ){
        alert("Que pena, Você Errou!!!");   
        quantidadeTentativas++;         <<<<<<<<<<<<<<<<<<<
    } 
    chute.value = "";
    chute.focus();
}

  //resto do código
 </script>

Inseri só as partes do seu código que eu coloquei algo a mais e sinalizei com "<" onde esses detalhes estão. Vamos declarar a variável, somar enquanto o usuário erra e depois dele acertar vai aparecer junto do alert() e zerar ela junto com o novo sorteio.

Espero que assim consiga implementar essa funcionalidade que planeja. Qualquer coisa pode nos chamar novamente =)

Bons estudos!

Oi Mônica! Obrigado pela resposta... Deu muito certo, não tinha noção de como incrementar. Agora, quando a função "verifica()" é invocada a quantidade de tentativas está incrementada. Genial !!! Obrigado mesmo!!!

Fiz uns ajustes para dar um alert correto, quando acerta de primeira.

Olha como ficou:

<meta charset="UTF-8">
<style>
    body {
        font-family: Arial, Helvetica, sans-serif;     
    }
    p {
        color: darkred;
        font-size: 20px;
        margin: 0 0 0 10%;
        padding: 0;
    }

    h1 {
        color: blue;
        font-size: 22px;
        margin: 10px 0 10px 15%;
        padding: 20px;
    }
    h2 {
        color: red;
        font-size: 21px;
        margin: 10 0 0 10%;
        padding: 0;

    }
    input {
        color: red;
        font-size: 21px;
        margin: 10 0 0 10%;
        padding: 0;
    }
</style>

    <h2> </h2><h1>Boa Sorte!!!</h1>
<hr>
    <input/> 
    <button>Verificar</button>
<hr>

<script>

var quantidadeTentativas = 1;

function sorteia(n){
    return Math.round(Math.random() * n);  
}

function criaArray (){
    segredos = new Array();
    var contador = 0;

   while(contador < possibilidades){
        var a = sorteia(n)
        if(a!=0){
            var achouIgual = false;
            for(var posicao = 0; posicao < segredos.length; posicao++){
                if (segredos[posicao] == a){
                achouIgual = true; 
                break;               
                }
            }
            if(achouIgual == false){
                segredos.push(a)
                contador++;
            }
        }
    }

    return segredos;
}

function verifica(){

        var acertou = false;

    for(var posicao = 0; posicao < segredos.length; posicao++){
        if(chute.value == segredos[posicao]){
            alert(`PARABÉNS, VOCÊ ACERTOU NA ${quantidadeTentativas}ª TENTATIVA!!!!!`);
            segredos = criaArray();//Cria nova lista de numeros sorteados
            quantidadeTentativas = 1;
            console.log(segredos);
            acertou = true; 
            break;
        }
    }

    if(acertou == false ){
        alert("Que pena, Você Errou!!!");
        quantidadeTentativas++;    
        if (quantidadeTentativas > 5){
            alert("Você é muito ruim de chute!!!");
        }                
    } 



    chute.value = "";
    chute.focus();


}

//Escolher dificuldade do jogo

var dificuldade = parseInt(prompt(`Escolha o nível de dificuldade \n fácil = 1 \n Difícil = 2 \n Muito Dificil = 3`))
var facil = 1;
var dificil = 2;
var muitoDificil = 3;

if (dificuldade==1){
    var possibilidades = 3;
    var n = 10;
    var texto = document.querySelector("h2");
    texto.innerHTML = ("Adivinhe um número sorteado entre 1 e 10.");
}
if (dificuldade==2){
    var possibilidades = 10;
    var n = 100;
    var texto = document.querySelector("h2");
    texto.innerHTML = ("Adivinhe um número sorteado entre 1 e 100.");
}
if (dificuldade==3){
    var possibilidades = 50;
    var n = 1000;
    var texto = document.querySelector("h2");
    texto.innerHTML = ("Adivinhe um número sorteado entre 1 e 1000.");
}


// Criando lista de números sorteados

segredos = criaArray();
console.log(segredos);

// Recebe entrada vazia e com foco

var chute = document.querySelector("input");
chute.focus();

// Botão para verificar se o valor da entrada é igual
//a um dos valores da lista criada.


    var btn = document.querySelector("button");
    btn.onclick = verifica; //Chama a função 


</script>