Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Consolidando. Também inseri comentários - deu trabalho este código, mas ótimo para quem quiser aprender.

<meta charset="UTF-8">
<h1>Mini Sena</h1>
<script>
    function pulaLinha() {
        document.write("<br>");
                                       }
    function mostra(frase) {
        document.write(frase);
        pulaLinha();
                                }
//=================================================================
mostra("Vou sortear 10 números aleatórios não-repetidos.");
mostra("Você apostará até 10 números de 1 a 20 sem repetição.");
mostra("Será que sua aposta será vencedora?");
//=================================================================
//          SORTEIO DE 10 NÚMEROS NÃO REPETIDOS
//=================================================================
function sorteia() {   return Math.round(Math.random() * 20);   }  //Gera n* randômico
function sorteiaNumeros(quantidade) { // LOOP para incluir os 20 n* sem repetição
        var segredos = [];  //ARRAY, memoriza os n*
        var numero = 1;        // Contador, 10 sorteios entre 1 e 20
        while(numero <= 10) {   // Faça até que atinja 10 
              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(10);  //Solitica o sorteio de 10 números
//------------------------------------------------------------------
//LOOP para entrada de n apostas sem repetição
//------------------------------------------------------------------
var apostas = [];
    var quantidadeApostas = parseInt(prompt("Quantas apostas você vai adicionar? Máx. 10 apostas"));
    pulaLinha;
    if (quantidadeApostas >10) { (quantidadeApostas = 10);
                                prompt("A quantidade máxima de apostas será 10"); }
    if (quantidadeApostas < 1) { (quantidadeApostas = 1); 
                                prompt("A quantidade mínima de apostas será 1");  }
    pulaLinha;                           
    mostra(" A quantidade de apostas foi "+quantidadeApostas);
    var contador = 0;

    while( contador <= (quantidadeApostas-1))
    {
        var nAposta = prompt("Informe a aposta n* " + (1+contador)+" de "+quantidadeApostas);
        var jaExiste = false; // false indicará se o n* digitado é inexistente

        for( var posicao = 0; posicao < quantidadeApostas; posicao++)
        {
            if(nAposta==apostas[posicao]) {jaExiste=true;prompt("Aposta não pode ser repetida. Clique OK para inserir outro valor");break;}
            if(nAposta >20) {jaExiste=true;prompt("Aposta não pode ser maior que 20. Clique OK para inserir outro valor");break;}
            if(nAposta <1) {jaExiste=true;prompt("Aposta não pode ser menor que 1. Clique OK para inserir outro valor");break;}
        }
            if( jaExiste == false) { apostas.push(nAposta); contador++; }
    }
//-----------------------------------------------------
//              COMPARAR SEGREDOS COM APOSTAS
//-----------------------------------------------------
           var acertos = [];  //novo ARRAY, memoriza os n* acertados
        var posicaoAcerto = 0;        // Contador dos 20 números sorteados
        while(posicaoAcerto < segredos.length){// Faça a comparação até que atinja os 20 números sorteados(0a19)
                    var match = false; //true, caso coincida aposta com número sorteado
                    for(var pos = 0; pos < apostas.length; pos++) {
                           if(apostas[pos]==segredos[posicaoAcerto]){
                                match = true;
                                acertos.push(segredos[posicaoAcerto]);}
                     }
                    posicaoAcerto++;
              } //Fecha while
//Bloco para amostragem de resultados
pulaLinha();
mostra("Números sorteados");
for(var olhaossegredos = 0; olhaossegredos<segredos.length; olhaossegredos++) {
document.write(".."+segredos[olhaossegredos]+".."); 
}
document.write("<br><br>");
mostra("Números apostados");
for(var olhaasapostas = 0; olhaasapostas<apostas.length; olhaasapostas++) {
document.write(".."+apostas[olhaasapostas]+"..");
}
document.write("<br><br>");
if(acertos.length>0)  { 
        for(var contar=0;contar<acertos.length;contar++)  {
            mostra("Acerto n* "+(contar+1)+" = "+acertos[contar]);}    
}
 if(acertos.length<=0)  { mostra("Não houve acertos");} 
</script>
1 resposta
solução!

Oii Alexandre, tudo bom?

Ficou uma maravilha seu código, e os comentários então, muito bom. Lembrando que comentários no código é uma boa prática, para que o próximo que irá dar manutenção, possa entender o funcionamento dele.

Obrigada por compartilhar com a gente e continue sempre praticando que a tendência é ficar fera!

Bons estudos :)