1
resposta

Lógica de Programação - Desafio Final

Pessoal, Tudo bem?

Estou há algum tempo tentando fechar o desafio da loteria, só que estou com algumas dúvidas que não consegui resolver de jeito nenhum. Dessa forma, poderiam me dar uma luz com as dúvidas abaixo, por favor?

1 - Quando clico no botão "Sortear Números da loteria" ele sorteia os 6 números tranquilamente, porém se eu clicar novamente o código coloca mais 6 números no Array e não sei como travar isso para ele parar quando popular com 6 números, outra dúvida nesse tópico mesmo seria o travamento para que os 6 números que o "Math.random" trouxer não sejam repetidos.

2 - Quando digito algum número para apostar na caixa de texto (id = "numeroap") e depois vou clicar no botão "Registre sua aposta" eu tenho que dar 2 cliques no botão para que ele funcione, há como retirar isso?

3 - Criei 2 Arrays para a loteria, o primeiro grava o sorteio e o segundo as apostas, porém não soube como fazer a conferência se o apostado está contido no sorteado para dar a resposta ao usuário.

Desde já agradeço amigos!

Loteria <br><br>


<input type="submit" value="Sortear Números da Loteria!"
                    id="sorteio_autom"/> <br> <br> <hr>

Coloque suas apostas abaixo e Boa Sorte! <br> <br>
<input type="text" id="numeroap" />
<input type="submit" value="Registre sua Aposta!" id="btAposta"/> <br> <br>

<input type="submit" value="Clique aqui e Confira!" id="btCheck"/>

<meta charset = "UTF-8">
<script>
var mostra = function(frase){
    document.write(frase)};
var pulaLinha = function(){document.write("<hr>");};

sorteados = []
var adicionarSorteado = function() {
           for(var i = 1; i <= 6; i++) {
            var numero = Math.round(Math.random() * 60);
            sorteados.push(numero);
            }
var tamanho = sorteados.length;        
alert("Novos números foram sorteados! Boa Sorte!")
        console.log(sorteados);
        console.log(tamanho);
};

var botaoSorteio = document.getElementById("sorteio_autom");
botaoSorteio.onclick = adicionarSorteado;

var mostra = function(frase) {
    document.write(frase);
    pulalinha();pulalinha();
};


var apostas = [];
var Check = [];

var adicionarApostas = function() {
        var numeroApostado = document.getElementById("numeroap").value;
        for(var i = 0; i < 6; i = i + 1) {

         if(apostas[i] == numeroApostado) {
                alert("Numero já sorteado!");
                return;}
            else if((numeroApostado == 0)|| (numeroApostado == null)) {
                 alert("Ops, O número 0 não faz parte da nossa loteria!");
                 return;}

            else if((numeroApostado > 60) || (numeroApostado < 0)) {
                 alert("Ops, Somente números entre 0 e 60!");
                 return;}
            else if(apostas.length >= 6) {
                alert("Você já apostou 6 vezes!");
                return;}
            else if(apostas.length == 6) {
                mostra("Você já apostou 6 vezes!");
                return;}
        }



        apostas.push(parseInt(numeroApostado));

console.log(apostas);

};



var botaoAposta = document.getElementById("btAposta");
botaoAposta.onclick = adicionarApostas;


</script>
1 resposta

Opa,

Sou novo no forum mas tentarei ajudar. Peço que complementem se eu esqueci algo ou corrijam se errei algo. Mas ai vai, espero que ajude:

1- Se você quiser refazer a lista você pode zerar a lista e começar de novo, ou senão você pode simplesmente adicionar um if para validar se a lista já está preenchida e não executar o preenchimento denovo. Se você quiser saber se um número sorteado já foi adicionado simplesmente verifique com o indexOf da lista se retorna maior ou igual a 0, não esqueça de não andar com o contador do for se validar falso.

2 - O botão funciona, só que pela sua lógica na primeira vez que ele é executado e não acerta o sorteio ele só executa o código abaixo e não da retorno pro usuário que o número foi apostado:

apostas.push(parseInt(numeroApostado));

console.log(apostas);

Dica: Se você está usando um navegador como chrome ou firefox vale a pena utilizar o debug de codigo fonte apertando f12 e colocar um breakpoint na chamada do método para verificar o que está acontecendo.

3 - Uma alternativa é fazer um laço nas apostas e verificar se cada aposta está contida na lista de numeros sorteados, se todos validarem true você retorna dizendo que foi inserido, se pelo menos um retornar false você indica que não foi sorteado.