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

[Duvida] Problemas com o Responsive Voice

Bom dia.

Durante a aula eu achei que seria interessante a responsiveVoice ler também o número dos chutes. Inseri no código, funcionou, mas toda vez que eu reinicio o jogo ela lê "o número é maior/menor que" antes de ler, novamente, "Exibir jogo na tela"e "Escolha um número de 1 a 10".

Tentei inserir o comando responsiveVoice.cancel() tanto na função de clicarNovoJogo() quanto dentro de verificarChute(), ambas mal sucedidas.

Alguma sugestão?

//let titulo = document.querySelector("h1");
//titulo.innerHTML = "Jogo do número secreto";

//let paragrafo = document.querySelector('p');
//paragrafo.innerHTML = "Escolha um número de 1 a 10";
let listaDeNumerosSorteados = [];
let numeroLimite = 10;
let numeroSecreto = gerarNumero();
let tentativas=1;


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

function exibirMensagemInicial(){
exibirTextoNaTela('h1','Exibir jogo na tela');
exibirTextoNaTela('p','Escolha um número de 1 a 10');
}
exibirMensagemInicial();

function verificarChute(){
    
    let chute = document.querySelector('input').value;
    let palavraTentativas = (tentativas>1) ? "tentativas" : "tentativa";
    responsiveVoice.speak(chute,'Brazilian Portuguese Female',{rate:1.2});
    if(chute==numeroSecreto){
        exibirTextoNaTela('h1','Acertou');
        exibirTextoNaTela('p',`Você descobriu o número secreto com ${tentativas} ${palavraTentativas}!`);
        document.getElementById('reiniciar').removeAttribute('disabled');
        //responsiveVoice.cancel(); tentei aqui, não rolou
    } else{
        if(chute<numeroSecreto){
            exibirTextoNaTela('p','O número secreto é maior');
       } else{
        exibirTextoNaTela('p','O número secreto é menor');
       }
    tentativas++;
    limparCampo();
    }

}

function gerarNumero()
{
    let numeroEscolhido = parseInt(Math.random()*numeroLimite+1);
    if(listaDeNumerosSorteados.length == numeroLimite){
        listaDeNumerosSorteados = [];
    }
    if(listaDeNumerosSorteados.includes(numeroEscolhido)){
        return gerarNumero();
    } else{
        listaDeNumerosSorteados.push(numeroEscolhido);
        console.log(listaDeNumerosSorteados);
        return numeroEscolhido;
    }

}

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

function clicarNovoJogo(){
    //responsiveVoice.cancel(); tentei aqui, não rolou
    numeroSecreto = gerarNumero();
    limparCampo();
    tentativas=1;
    verificarChute();
    exibirMensagemInicial();
    document.getElementById('reiniciar').setAttribute('disabled',true); //tentei com false deu a mesma merda
}

1 resposta
solução!

Olá, Caio.

Tudo bem?

Eu testei o seu código JavaScript com o projeto da aula, e funcionou perfeitamente, ele fala o número que chutamos, e em seguida fala se erramos, e se o número maior ou menor. Parece estar funcionando bem a sua lógica. Quando recarrego a página ela fala: "Escolha um número de 1 a 10".

Tenta forçar o carregamneto da página com o comando "CTRL + SHIFT + R" para ver se não é o cache. Tenta limpar o cache do navegador.

Espero ter ajudado. Qualquer dúvida manda aqui. Valeu.