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

Estou confusa :(

Este é o codigo final do professor, e confesso que até agora não entendi qual o objetivo do programa, coloquei ele para rodar e parece simples para o usuario somente ler se ele acertou ou errou um numero, mas o código para mim está muito confuso. Já li aulas anteriores a essa para voltar algumas funções, li a aula, assisti o video, tentei desenvolver o código, mas me perco na metade da aula para frente, então só entendi 50% desse código. Socorro kkkk

<meta charset="UTF-8">

<input/>
<button>Compare com o meu segredo</button>

<script>
    function sorteia() {

       return Math.round(Math.random() * 10);

    }

    function sorteiaNumeros(quantidade) {

        var segredos = [];

        var numero = 1;

        while(numero <= quantidade) {

              var numeroAleatorio = sorteia();
              var achou = false;

              if (numeroAleatorio !== 0) {
                     for(var posicao = 0; posicao < segredos.length; posicao++) {

                           if(segredos[posicao] == numeroAleatorio){
                                achou = true;
                                break;
                           }

                     }

                     if (achou == false) {
                           segredos.push(numeroAleatorio);
                           numero++;
                     }
              }

        }

        return segredos;

    }

    var segredos = sorteiaNumeros(3);

    console.log(segredos);

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

    function verifica() {

       var achou = false;

       for(var posicao = 0; posicao < segredos.length; posicao++) {

              if(input.value == segredos[posicao]) {

                     alert("Você ACERTOU!");
                     achou = true;
                     break;
              } 
       }

       if(achou == false) {

              alert("Você ERROU!");
       }

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

    }

    var button = document.querySelector("button");

    button.onclick = verifica;

</script>
7 respostas
solução!

Boa Noite Ana, beleza?

Fica tranquila, de inicio é complicado mesmo, mas vamos fazer diferente pra mim tentar te ajudar.

Aponta pra mim os trechos que vc não entendeu completamente nada, ou os trechos que vc quer uma explicação mais detalhada, assim que der eu pego e explico pra vc.

Fechado?

Abraço!

Boa noite Ana, blz?

Também achei que este programa deu um salto relevante de complexidade em relação aos programas anteriores. Acho que foi o maior programa até então, chegando a quase 100 linhas. Tive pouca dificuldade porque já tinha vivencia em outras LPs. Concordo com a sugestão feita pelo colega Rodrigo. Como o programa é grande, sugiro escolher 3 partes que tu aches mais críticas, para começar a tirar as dúvidas. Talvez a elucidação dessas, já ajude a desvendar o programa por completo.

Também estava achando tudo tranquilo até esse exercício kkk, a parte que mais fiquei perdido foi justamente na manipulação dos arrays, é muita varíavel pra ficar jogando valor kkk

Realmente, essa parte do curso avançou muito em comparação as aulas anteriores, mas vou estudando aos poucos e tentar entender por partes. Confesso que fiquei confusa com a manipulação dos arrays, como o colega falou, mas ao chegar no resultado final do programa ainda fiquei confusa nos trechos onde ele cria funções.


    function verifica() {

       var achou = false;

       for(var posicao = 0; posicao < segredos.length; posicao++) {

              if(input.value == segredos[posicao]) {

                     alert("Você ACERTOU!");
                     achou = true;
                     break;
              } 
       }

E essa outra função aqui:

function sorteiaNumeros(quantidade) {

        var segredos = [];

        var numero = 1;

        while(numero <= quantidade) {

              var numeroAleatorio = sorteia();
              var achou = false;

              if (numeroAleatorio !== 0) {
                     for(var posicao = 0; posicao < segredos.length; posicao++) {

                           if(segredos[posicao] == numeroAleatorio){
                                achou = true;
                                break;
                           }

insira seu código aqui `

A função verifica() funciona para verificar se a entrada enviada pelo usuário (input.value), corresponde a algum item que está guardado em "segredos". Como é uma lista, tem que passar um for para percorrer os itens até achar ou até o final e não achar. A variável "achou" serve justamente para indicar isto e não fazer aparecer mensagens do "não acertou". Você omitiu essa parte da função em sua última postagem. Tem que prestar atenção na quantidade de "{", e de "}" para delimitar os limites da função. Na sorteiaNumeros, também não colocou a função completa. Aqui é feito o sorteio dos números de 1 - 10 (o zero foi filtrado) e também barra a repetição dos números por meio da variável booleana "achou", não confundir com a variável da outra função. Como estão em funções diferentes, são independentes, apesar do mesmo nome. Isso respondeu à sua dúvida, Anne (11k7 xp, 11 posts)? Mais alguma dúvida a esclarecer nestas funções? Tem alguma outra parte do programa que você quer entender melhor?

Abraço! Bons estudos!

Entendi Raphael, ficou mais claro agora. Muito Obrigada!

Poxa, tu disseste que te ajudei no entendimento mas tu deu a solução para outro que nem te ajudou a elucidar nada e nem acompanhou a discussão? :(