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

Dúvidas sobre o desafio final da lógica de programação I

Preciso saber de duas coisas

  1. Eu estava no caminho certo escrevendo aquele código?

    • Eu tentei começar esse programa usando dois programinhas que ensinaram em aulas anteriores como exemplo, a ideia era ir vendo os erros que apareciam e tentando corrigir, mas com o tempo percebi que não estava conseguindo chegar a lugar algum, me perdi completamente e resolvi pedir ajuda, então tomei o susto com a diferença entre os códigos. haha

  2. A resposta da Alura condiz com o que o curso mostrou?

    • Estranhei o uso de um for dentro de outro for onde o [i] foi trocado por um [j] em um deles, não lembro de ter visto alguma vez o professor falando que era possível fazer isso, eu jamais acertaria esse formato, além desse detalhe o código também possui vários for's o que eu definitivamente não sabia que era possível e muito menos como aplicar, foi erro de lógica da minha parte ou talvez a explicação não deixou claro?

Essa é mais uma dúvida do que reclamação.

Meu programa

            input type="text" id="numero" 
            input type="submit" value="Adicione o verifique no Bingo!" id="verificar" 

var numeroSecreto = [10, 20, 30, 40, 50, 60]; var chute = [];

var adicionarChute = function(){ var numero = document.getElementyById("numero").value;

for (var i = 0; i < chute.length; i++) { if(chute[i] == numero){ alert("Parabéns, você acertou um número!"); return; } }

chute.push(numero); console.log(chute); }

var botao = document.getElementById("verificar"); botao.onclick = adicionarChute;

Programa da Alura

            var quantidadeAcertos = function(jogados, sorteados) {
                var acertos = 0;
                for(i = 0; i < 6; i++) {
                    for(j = 0; j < 6; j++) {
                        if(jogados[i] === sorteados[j]) {
                            acertos++;
                        }
                    }
                }
                return acertos;
            }

alert("Jogue na mega-sena! Diga quais são os 6 números do seu jogo."); var numerosJogados = []; for(i = 0; i < 6; i++) { numerosJogados[i] = parseInt(prompt("Diga qual o " + (i + 1) + " número do seu jogo:")); }

alert("Muito bom! Agora vou sortear os números premiados. Clique em ok para eu fazer o sorteio."); var numerosSorteados = []; for(i = 0; i < 6; i++) { numerosSorteados[i] = (Math.round(Math.random() * 59) + 1); }

var acertos = quantidadeAcertos(numerosJogados, numerosSorteados);

mostra("Você jogou os números " + numerosJogados); mostra("Os números sorteados foram " + numerosSorteados); mostra("Você acertou " + acertos + " número(s)");

2 respostas

Ele desconfigurou tudo depois que postei!

solução!

Olá Misael! Tudo bem cara? Me deparei com suas duvidas, vou tentar ajudá lo, ok?

  1. Na verdade não amigo, você se confundiu em muitas coisas, porém consegui entender o que você queria fazer. Mesmo assim, com a sua ideia, você poderia entrar no problema de chutar o mesmo numero. Outra coisa importante, você está verificando, numero por numero submetido, algo que não seria legal no jogo.

Obs.: Alguns dos seus erros (esqueceu de passar parâmetro para a função, não tem como acessar a variável de fora dentro de uma função, a não ser que ela seja global =D, você colocou a ordem de push para array errado, primeiro você coloca do array, depois verifica o mesmo, e outras coisas. Atende se amigo o/ )

  1. Hahahaha não tem problema amigo, é assim mesmo que aprendemos, sempre que eu estou com problema e não consigo resolver, abro uma outra aba do editor e começo de novo. E o google é uma grande ajuda, nunca se esqueça dele =).

  2. Sim, a resposta do Alura esta muito bem elaborada.

  3. Não amigo, pelo menos quando eu fiz essa aula, lembro sim das dicas do professor sobre os FOR's, e sim, não só possível como muito utilizado (pelo menos por mim hahahaha), tanto dois FOR's como dois WHILE's. Até mesmo porque, nesse caso ele usa um para pegar o chute na posição [i] do array, e o [j] para varrer todas as posições dos sorteados, antes de passar para o próximo chute [i].

Amigo se ficou alguma dúvida, estarei a disposição para ajudá lo. Espero que tenha explicado certinho e esclarecido sua dúvida.

Até mais amigo, e boa sorte o/

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software