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

Por gentileza, alguém me ilumina e me diz o que estou errando no código abaixo

Alguém sabe como resolver este código, fazer funcionar ?

<input type="submit"     value="Rodar Loteria"     id="loteria"/>

<input type="text" id="caixa" />
<input type="submit"     value="Aposta"         id="apostar"/>

<input type="submit"     value="Resultado"     id="resultados"/>


<script>

    var mostra = function(frase){
    document.write(frase);
    document.write("<br><hr><br>");
    };

    var sorteados = [];

        var jogoDeLoteria = function(){

            for(var i = 0 ; i < 6 ; i = i + 1){
            var guarda = Math.round(Math.random() * 60);

            sorteados.push(guarda);
            console.log(sorteados);
            }
        }


var loteria = document.getElementById("loteria");
loteria.onclick = jogoDeLoteria;


    var apostados = [];

        var apostandoFunc = function(){

        var aposta = document.getElementById("caixa").value;

            for(var i = 0 ; i < 6 ; i++){

                if(apostados[i] == aposta){
                alert("Numero já apostado");
                return;
                }
            }

            apostados.push(aposta);
            console.log(apostados);
        }


var apostar = document.getElementById("apostar");
apostar.onclick = apostandoFunc;


    var quantidadeAcertos = function(sorteados, apostados) {

        var acertos = 0;

            for(i = 0; i < 6; i++) {
                for(j = 0; j < 6; j++) {
                    if(sorteados[i] === apostados[j]) {
                        acertos++;
                        }
5 respostas

Raul,

Ficou faltando a chave que fechava a function quantidadeAcertos. Mantenha sempre seu código indentado para você enxergar esse tipo de coisa. Segue o código corrigido:

<input type="submit" value="Rodar Loteria" id="loteria">

<input type="text" id="caixa">

<input type="submit" value="Aposta" id="apostar">

<input type="submit" value="Resultado" id="resultados">


<script>
    var mostra = function(frase){
        document.write(frase);
        document.write("<br><hr><br>");
    };

    var sorteados = [];

    var jogoDeLoteria = function() {

        for(var i = 0 ; i < 6 ; i = i + 1) {
            var guarda = Math.round(Math.random() * 60);

            sorteados.push(guarda);
            console.log(sorteados);
        }
    };


    var loteria = document.getElementById("loteria");

    loteria.onclick = jogoDeLoteria;

    var apostados = [];

    var apostandoFunc = function() {

    var aposta = document.getElementById("caixa").value;

        for(var i = 0 ; i < 6 ; i++){
            if(apostados[i] == aposta){
                alert("Numero já apostado");
                return;
            }
        }

        apostados.push(aposta);
        console.log(apostados);
    };


    var apostar = document.getElementById("apostar");

    apostar.onclick = apostandoFunc;

    var quantidadeAcertos = function(sorteados, apostados) {
        var acertos = 0;

        for(i = 0; i < 6; i++) {
            for(j = 0; j < 6; j++) {
                if(sorteados[i] === apostados[j]) {
                    acertos++;
                }
            }
        }
    };
</script>

Arthur, agradeço pela dica!

Entretanto postei um código maior do que este que aparece no fórum... com pelo menos mais 9 linhas de código... minhas postagens infelizmente não estão sendo apresentadas devidamente (...)

} }

} return acertos; mostra("Você acertou " + acertos + " número(s)"); };

var resultados = document.getElementById("resultados"); resultados.onclick = quantidadeAcertos;

= (

solução!

Ah, agora entendi o que você queria com o seu código. Eis os problemas que eu encontrei:

1 - Algumas chaves ainda estavam fora do lugar.

2 - As variáveis i e j nos seus loops (for) não estavam sendo declaradas com o var

3 - Sua function quantidadeDeAcertos esperava dois parâmetros: sorteados e apostados, mas você nunca passava nada neles, dando erro de objeto não criado. Fora que, esses dois são variáveis globais. Você não precisa passar por parâmetro, basta chamar a variável direto dentro da sua function.

Veja como ficou o código completo:

<input type="submit" value="Rodar Loteria" id="loteria">

<input type="text" id="caixa">

<input type="submit" value="Aposta" id="apostar">

<input type="submit" value="Resultado" id="resultados">


<script>
    var mostra = function(frase){
        document.write(frase);
        document.write("<br><hr><br>");
    };

    var sorteados = [];

    var jogoDeLoteria = function() {

        for(var i = 0; i < 6; i++) {
            var guarda = Math.round(Math.random() * 60);

            sorteados.push(guarda);
            console.log(sorteados);
        }
    };


    var loteria = document.getElementById("loteria");

    loteria.onclick = jogoDeLoteria;

    var apostados = [];

    var apostandoFunc = function() {
        var aposta = document.getElementById("caixa").value;

        for(var i = 0; i < 6; i++){
            if(apostados[i] == aposta){
                alert("Numero já apostado");
                return;
            }
        }

        apostados.push(aposta);
        console.log(apostados);
    };


    var apostar = document.getElementById("apostar");

    apostar.onclick = apostandoFunc;

    var quantidadeAcertos = function() {
        var acertos = 0;

        for(var i = 0; i < 6; i++) {
            for(var j = 0; j < 6; j++) {
                if(sorteados[i] == apostados[j]) {
                    acertos++;
                }
            }
        }

        mostra("Você acertou " + acertos + " número(s)"); 
    };

    var resultados = document.getElementById("resultados"); 
    resultados.onclick = quantidadeAcertos;
</script>

Arthur, muito obrigado pela aula... deu para perceber que tenho muito a estudar...

GRATO!!!