1
resposta

[Bug] Erro no escolha do número de 1 ao 10, e no Responsive Voice.

Boa noite, estou com alguns erros no meu código, mas, não consigo encontra-lós. O primeiro erro é na parte do chute, posso colocar todos os números de 1 ao 10 e mesmo assim, vai me avisar que o número é maior. O segundo erro, é no ResponsiveVoice. Ele não habilita de jeito nenhum. Poderiam avaliar meu código e me ajudar nesses erros? Insira aqui a descrição dessa imagem para ajudar na acessibilidade Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Olá, Breno! Tudo bem?

Vamos analisar os dois problemas que você mencionou.

  1. chute sempre retorna que o número é maior

    O problema parece estar na função gerarNumeroAleatorio(). Vamos revisar o código dessa função:

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

    Note que a função parseInt está sendo usada de forma incorreta. A função Math.random() retorna um número decimal entre 0 e 1, e ao multiplicar por numeroLimite e adicionar 1, o número gerado pode não ser um inteiro. Vamos corrigir isso usando Math.floor para garantir que o número gerado seja um inteiro entre 1 e 10:

    function gerarNumeroAleatorio() {
        let numeroEscolhido = Math.floor(Math.random() * numeroLimite) + 1;
        let quantidadeDeElementosNaLista = listaDeNumerosSorteados.length;
    
        if (quantidadeDeElementosNaLista == 3) {
            listaDeNumerosSorteados = [];
        }
    
        if (listaDeNumerosSorteados.includes(numeroEscolhido)) {
            return gerarNumeroAleatorio();
        } else {
            listaDeNumerosSorteados.push(numeroEscolhido);
            console.log(listaDeNumerosSorteados);
            return numeroEscolhido;
        }
    }
    
  2. ResponsiveVoice não habilita

    Verifique se o script do ResponsiveVoice está sendo carregado corretamente. No seu código HTML, o script está sendo importado corretamente:

    <script src="https://code.responsivevoice.org/responsivevoice.js"></script>
    

    Além disso, certifique-se de que o navegador tem permissão para usar o áudio. Caso contrário, o script não funcionará. Verifique também se o navegador está bloqueando o uso do áudio.

  3. verificar a função exibirTextoNaTela

    Certifique-se de que a função exibirTextoNaTela está sendo chamada corretamente e que o texto está sendo passado corretamente para o responsiveVoice.speak:

    function exibirTextoNaTela(tag, texto) {
        let campo = document.querySelector(tag);
        campo.innerHTML = texto;
        responsiveVoice.speak(texto, 'Brazilian Portuguese Female', {rate: 1.2});
    }
    
  • Corrija a função gerarNumeroAleatorio para garantir que os números gerados sejam inteiros.

  • Verifique se o script do ResponsiveVoice está sendo carregado corretamente e se o navegador tem permissão para usar o áudio.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.