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

Minha lógica esta certa?

Olá, boa noite a todos!

Para me testar eu resolvi fazer a lógica diferente mas tendo o mesmo resultado do professor. Sei que o código esta bem maior do que o do professor, mas por hora eu gostaria de sabe se esse código também resolve o problema.

Obrigado!

<meta charset="UTF-8">

<input>
<button>Testar</button>

<script>

var numAleatorios = new Array (5);

for (var i = 0; i < numAleatorios.length; i++) {

    var aux = Math.round(Math.random() * 4);
    var cont = 0;
    var repetido = 0;
    repetido = 0;

    while(cont < numAleatorios.length){

        if(aux == numAleatorios[cont]){

        repetido++    

        }

    cont++;
    }

    if(repetido == 0){

        numAleatorios[i] = aux;
    }else{
        i--;
    }
}

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

document.write("<br>" + "Números sorteado ");

for (var i = 0; i < numAleatorios.length; i++) {

    var msg = document.write(numAleatorios[i] + " ");
}

function verificar(){

    var vf = false;

    for (var i = 0; i < numAleatorios.length; i++) {

        if(entrada.value == numAleatorios[i]){

        alert("Você acertou!");
        vf = true;
        break;

        }
    }

    if(vf == false){

        alert("Você errou!");
        entrada.value = "";
        entrada.focus();
    }
}

var botao = document.querySelector("button");
botao.onclick = verificar;

</script>
2 respostas
solução!

Depende qual seu problema ? Se for gerar números aleatórios não repetidos, então sim. Creio que podia estar menor removendo algumas redundâncias, ex.: dentro do teu for tu define que a variável

var repetido  = 0;
repetido = 0;

Mas se você testa e aparece oque você espera que apareça então resolve. Uma dica é tentar outros tipos de estruturas(switch,do while) pra ver como eles funcionam e tentar reduzir o mínimo de código e de redundância possível.

Entendi! Muito obrigado amigo.