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

Entrada do número com enter código final

Adicionei um trecho para dar entrada do número com enter tbm

document.querySelector('input').addEventListener('keydown', function(event) {
    if (event.key === 'Enter') {
        verificarChute();
    }
let numUsed= [];
let numMax=10; 
let numeroSecreto = gerarNumeroAleatorio();
let tentativas = 1;
function exibirTextoNaTela(tag, texto){
    let campo =document.querySelector(tag);
    campo.innerHTML = texto;
    responsiveVoice.speak(texto, 'Brazilian Portuguese Female',{rate:1.2});
}
let textWNumMax =`Escolha um número entre 1 e ${numMax}`;
function mensagemInicial(){
    exibirTextoNaTela('h1','Jogo do Número secreto');
    exibirTextoNaTela('p', textWNumMax);
}
mensagemInicial();
function verificarChute(){
    let chute = document.querySelector('input').value;
    if (chute == numeroSecreto){
        exibirTextoNaTela('h1','Acertou');
        let palavraTetativa = tentativas >1 ? 'tetativa' : 'tentativas';
        let mensagemTentativas = `você descobriu o número secreto com ${tentativas} ${palavraTetativa}`;
        exibirTextoNaTela('p',mensagemTentativas);
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else {
        if (chute > numeroSecreto){
            exibirTextoNaTela('p', 'O númeor secreto é menor');
        }else{
            exibirTextoNaTela('p','O número secreto é maior');
        }
        tentativas++;
        limparCampo();
    }
}
document.querySelector('input').addEventListener('keydown', function(event) {
    if (event.key === 'Enter') {
        verificarChute();
    }
});
function gerarNumeroAleatorio(){
    let numChosed = parseInt(Math.random()*numMax+1);
    if (numUsed.length>3){
        numUsed=[];
    }
    if (numUsed.includes(numChosed)){
        return gerarNumeroAleatorio();
    } else {
        numUsed.push(numChosed);
        console.log(numUsed);
        return numChosed;
    }
}
function limparCampo(){
    chute = document.querySelector("input");
    chute.value = '';
}
function reiniciarJogo(){
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    mensagemInicial();
    document.getElementById('reiniciar').setAttribute('disabled',true);
    console.log(numeroSecreto);
}```
1 resposta
solução!

Oi, Lucas! Como vai?

Vamos resolver isso. Seu código tem alguns erros de sintaxe e problemas lógicos. Veja os ajustes:

  1. Erro na função de evento: O primeiro addEventListener não está fechado corretamente.
  2. Erro na exibição da tentativa: A palavra tentativa está escrita errado.
  3. Erro na comparação com o número secreto: O erro de digitação em númeor pode impedir a exibição correta.
  4. Melhoria na lógica de geração do número secreto: O controle de números já usados pode ser otimizado.

Ajuste seu código assim:

document.querySelector('input').addEventListener('keydown', function(event) {
    if (event.key === 'Enter') {
        verificarChute();
    }
});

let numUsed = [];
let numMax = 10;
let numeroSecreto = gerarNumeroAleatorio();
let tentativas = 1;

function exibirTextoNaTela(tag, texto) {
    let campo = document.querySelector(tag);
    campo.innerHTML = texto;
    responsiveVoice.speak(texto, 'Brazilian Portuguese Female', { rate: 1.2 });
}

let textWNumMax = `Escolha um número entre 1 e ${numMax}`;

function mensagemInicial() {
    exibirTextoNaTela('h1', 'Jogo do Número Secreto');
    exibirTextoNaTela('p', textWNumMax);
}
mensagemInicial();

function verificarChute() {
    let chute = document.querySelector('input').value;
    if (chute == numeroSecreto) {
        exibirTextoNaTela('h1', 'Acertou');
        let palavraTentativa = tentativas > 1 ? 'tentativas' : 'tentativa';
        let mensagemTentativas = `Você descobriu o número secreto com ${tentativas} ${palavraTentativa}`;
        exibirTextoNaTela('p', mensagemTentativas);
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else {
        if (chute > numeroSecreto) {
            exibirTextoNaTela('p', 'O número secreto é menor');
        } else {
            exibirTextoNaTela('p', 'O número secreto é maior');
        }
        tentativas++;
        limparCampo();
    }
}

function gerarNumeroAleatorio() {
    let numChosed;
    do {
        numChosed = Math.floor(Math.random() * numMax) + 1;
    } while (numUsed.includes(numChosed));

    numUsed.push(numChosed);
    if (numUsed.length > 3) {
        numUsed.shift();
    }
    return numChosed;
}

function limparCampo() {
    let chute = document.querySelector("input");
    chute.value = '';
}

function reiniciarJogo() {
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    mensagemInicial();
    document.getElementById('reiniciar').setAttribute('disabled', true);
}

Agora o enter funciona corretamente, os erros de digitação foram corrigidos, e a lógica de armazenamento de números usados foi otimizada.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!