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

Tenho como aplicar repetição ?

Utilizando o conteúdo que aprendemos até o momento e utilizando essas funções e variáveis a baixo, eu consigo de alguma maneira aplicar isso dentro de um while e dar pro usuário mais chances de acertar ?

<html>
    <head>
        <meta charset="utf-8">
        <title>Programa.html</title>
    </head>

    <body>

        <input/>
            <button>Clica aqui pra gente ver o resultado.</button>

        <script type="text/javascript">

            function quebraLinha() {

                document.write("<br>");
            }

            function mostra(texto) {

                document.write(texto);
            }

            function sorteiaNumero() {

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

            function teste() {

                if (input.value == numeroSorteado) {

                    alert("Você acertou meu segredo.");
                } else {

                    alert("Você errou.");
                }
            }

            var numeroSorteado = sorteiaNumero();
            console.log(numeroSorteado);
            var input = document.querySelector("input");
            var button = document.querySelector("button");
            var contador = 1;
            var maximoChances = 3;
            button.onclick = teste;


        </script>

    </body>
</html>
14 respostas

Boa noite, Felipe! Como vai?

Excelente sua pergunta! Inclusive, é exatamente para resolver casos como esse que vc exemplificou que os laços de repetição existem! Ou seja, dá sim pra usar um laço de repetição para resolver essa situação!

A pergunta que não quer calar é: como fazer isso?

A título de desafio para vc poder exercitar o conteúdo aprendido durante o curso, deixarei que vc tente encontrar a solução que procura por conta própria! Mas se vc se perder nas trevas basta gritar aqui que eu irei aparecer para te ajudar e te levar para a luz do conhecimento! Portanto, qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Tentei de várias maneiras e não estou conseguindo, poderia por favor me auxiliar ? Não quero que resolva pra mim, apenas me ajude. Estou no caminho certo ? Eu não sei como fazer para que quando o usuário erre a resposta ele nos deixe tentar novamente e continue acrescentando no contador. Eu tentei por um break no final do if (contador < maximoChances) porém como ele sai da nossa repetição o resultado fica como se nós fossemos deixar tudo fora do while kkkkk.

<html>
    <head>
        <meta charset="utf-8">
        <title>Programa.html</title>
    </head>

    <body>

        <input/>
            <button>Clica aqui pra gente ver o resultado.</button>

        <script type="text/javascript">

            function quebraLinha() {

                document.write("<br>");
            }

            function mostra(texto) {

                document.write(texto);
            }

            function sorteiaNumero() {

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

            function teste() {

                var numeroSorteado = sorteiaNumero();
                console.log(numeroSorteado);
                var contador = 1;
                var maximoChances = 3;

                while(contador <= maximoChances) {

                    if (input.value == 5) {

                        alert("Parabéns, você acertou.")
                        contador = 4;
                    } else {

                        if (contador < maximoChances) {

                            alert("Você errou, tente novamente.");
                            contador++;
                        } else {

                            alert("Número máximo de tentativas alcançado.");
                            break;
                        }    
                    }
                }
            }

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

            button.onclick = teste;


        </script>

    </body>
</html>

Oi Felipe tudo bem?

O melhor jeito de entender como o programa está funcionando é debugando ele. Dá uma olhadinha nesse curso https://cursos.alura.com.br/course/chrome-devtools que ensina a debugar javascript usando as ferramentas de desenvolvedor do Google Chrome.

Se mesmo assim não conseguir dá um alô pra gente. Qualquer coisa que eu responder eu vou estar fazendo pra você e não é o que você quer, não é mesmo.

Agradeço pelo empenho em me fazer ir atrás da solução, pra mim ainda é meio confuso pois esse é o primeiro curso que faço na área de programação. Estarei concluindo este e vou dar uma olhada depois nesse que você me recomendou. Caso eu consiga (e vou) resolver esse meu problema, posto a resolução aqui pra vocês me ajudarem a refinar meu código.

solução!

Fica difícil falar sem dar spoiler do código rsrsrs. Mas sim você está indo pelo caminho certo. Está próximo da solução sim. Sugiro ver como o professor resolve o problema e tentar fazer novamente do zero sem ver o código, ou então esfriar a cabeça e tentar novamente mais tarde que a resposta vem a mente (faço isso direto no trabalho).

É que não é aplicado esse problema durante a aula, pelo menos não até o momento. Eu que quis dificultar um pouco e tentar por em prática o que aprendi.

Entendi, então dá para ir levando o curso e depois revisitar o problema. Qualquer coisa estamos por aqui!

Marcarei como solucionado e agradeço de coração as dicas, orientações e a atenção.

Muitíssimo obrigado.

Disponha e bons estudos!!!

Opa, Felipe! Voltei para te tirar das trevas, meu aluno!

O laço de repetição fica sem sentido nesse caso pq vc está obtendo o chute do usuário através de um input. Mas se vc obter os chutes através de um prompt() aí a coisa vai fazer mais sentido!

Veja, o passo a passo é mais ou menos esse:

  1. Pega o chute do usuário com o prompt().
  2. Verifica se o chute está correto.
  3. Se estiver correto, faz um alert() parabenizando o usuário e para o laço de repetição.
  4. Caso esteja incorreto, incrementa o contador de tentativas.
  5. Verifica se o número de tentativas é menor que o número máximo de tentativas.
  6. Se tiver acabado a quantidade de tentativas, faz um alert() informando que o usuário perdeu.
  7. Se não tiver acabado, voltar ao passo 1.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos!

Entendi!! Eu achei que dava pra ser feito pegando o valor do input. Entendi perfeitamente Gabriel.

Muito bem, Felipe! Agora é só manda ver aí nos estudos! E se quiser, pode mandar o código aqui no fórum depois!

Grande abraço e sucesso, meu aluno!

Olá novamente.

Esse foi o código que consegui bolar sozinho, fiquei bem contente com o resultado apesar de não utilizar os botões, como é um mundo novo pra mim, conseguir realizar essas funções já me motiva bastante, haha. Poderiam avaliar e me dizer se tem maneiras mais " simples " de realizar o mesmo código ?

        <script type="text/javascript">

            function pulaLinha() {

                document.write("<br>");
            }

            function mostra(texto) {

                document.write(texto);
            }

            function adivinha(){

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


            var chancesDeAcertar = 5;
            var nomeJogador = prompt ("Seja bem vindo jogador, por favor nos diga seu nome. Não se esqueça que você só tem 5 chances."); 

            for(var contador = 1; contador <= chancesDeAcertar; contador ++) {

                var numeroPensado = adivinha();
                console.log(numeroPensado);

                var palpite = parseInt (prompt("Vamos lá " + nomeJogador + ", digite seu palpite."));

                if (palpite == numeroPensado) {

                    alert("Parabéns " + nomeJogador + ", era exatamente esse o número que eu estava pensando.");
                    break;    
                } else {

                    if (contador < chancesDeAcertar) {

                        alert("Que pena " + nomeJogador + ", você errou. O número que pensei foi " + numeroPensado);
                    } else {

                        alert("Que pena " + nomeJogador + ", infelizmente você esgotou todas suas chances.");
                    }
                }
            }





        </script>

Oi Felipe tudo bem?

O código está bom. Não se preocupe neste momento em deixar o código mais simples. Continuando com os curso verá que existem vários padrões de arquiteturas e cada um serve para um projeto diferente. Continue assim cara e bons estudos!!!