JavaScript - Error de comparacion de valores

   
Vista:

Error de comparacion de valores

Publicado por Eduardo (1 intervención) el 06/04/2015 06:57:01
Buenas a todos, soy nuevo en esta comunidad y quisiera ver si pueden ayudarme a solucionar un error que tengo en un pequeño programa..

Consiste en un "juego" en donde aparece una operacion en pantalla y un contador descendiente de 5 segundos, el usuario debera ingresar el resultado de la operacion en un imput, si es correcto ganara un punto y aparecera otra operacion. Si se equivoca o se termina el tiempo el juego terminara..
El problema es que en la primer operacion se compara la respuesta dada con el resultado que debe ser, despues se avanza a la segunda operacion y hace la comparacion de la segunda respuesta con el segundo resultado de forma correcta pero inmediatamente salta y hace la comparacion entre la segunda respuesta y el resultado de la tercera operacion(no se si me explique claro, pero ojala puedan echarme una mano)


PD.no tengo mucha experiencia en programacion y apenas estoy iniciando con javascript por lo que talves mi codigo no este muy bien estructurado o sea algo rudimentario

Este es el body del index:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<body>
	<div id="contenedor">
            <form id="registro" method="post">
                <h3>REGISTRATE</h3>
		<input type="text" id="nombre" name="nombre" placeholder="Nombre" size="12" maxlength="10" required><br><br>
                <input type="button" id="entrar" value="ENTRAR">
            </form>
            <div id="juego">
                <div id="tiempo">
                    <span>TIEMPO</span><br>
                    <span id="segundos">-</span>
                </div>
                <div id="operaciones">
                    <span id="num1"></span>
                    <spa id="sig1" class="signo"></spa>
                    <span id="num2"></span>
                    <spa id="sig2" class="signo"></spa>
                    <span id="num3"></span>
                    <spa id="sig3" class="signo"></spa>
                    <span id="num4"></span><br>
                    <form id="datos">
                        <input type="text" id="respuesta" name="respuesta" size="5" maxlength="3" >
                        <input type="button" name="enviar" value="ENVIAR" id="enviar">
                    </form>
                </div>
                <span id="puntuacion"></span>
            </div>
            <div id="marcador">
                <h1>FIN DEL JUEGO</h1>
            </div>
	</div>
</body>

y aqui tengo los scripts:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
$(document).ready(function(){
    $('#registro').hide();
    $('#tiempo').hide();
    $('#operaciones').hide();
    $('#puntuacion').hide();
    $('#marcador').hide();
    $('#registro').fadeTo(1500, 1);
 
    $('#entrar').click(function(){
        var nombre = $('#nombre').val();
        $('#registro').slideUp();
        $('#tiempo').slideDown();
        $('#operaciones').slideDown();
        $('#puntuacion').slideDown();
        ciclo(0);
    });
});
 
function ciclo(puntos, nombre){
    var seguir = true;
    var puntuacion = document.getElementById('puntuacion');
    var borde = document.getElementById('operaciones');
    resultado = operacion(puntos);
    var seg = 5;
    var segundos = document.getElementById('segundos');
    boton = document.getElementById('enviar');
    var tiempo = setInterval(function(){
        if(seg < 0){
            clearInterval(tiempo);
            boton.disabled = true;
            //alert('tiempo terminado');
            fin();
        }else{
            segundos.innerHTML = seg;
            seg --;
        }
    }, 1000);
    $('#enviar').click(function(){
        var respuesta = $('#respuesta').val();
        if(respuesta == resultado){
            clearInterval(tiempo);
            borde.style.boxShadow = "5px 5px 15px #01DF01, -5px -5px 15px #01DF01";
            alert("bien");
            puntos ++;
            $('#respuesta').val('');
            ciclo(puntos);
        }else{
            clearInterval(tiempo);
            borde.style.boxShadow = "5px 5px 15px #FE2E2E, -5px -5px 15px #FE2E2E";
            alert("La respuesta era " + resultado);
            fin();
        }
        borde.style.boxShadow = "0px 0px 0px black, 0px 0px 0px black";
    });
 
}
 
function operacion(puntos){
    //var resultado;
    var num1 = document.getElementById('num1');
    var num2 = document.getElementById('num2');
    var num3 = document.getElementById('num3');
    var num4 = document.getElementById('num4');
    var signo1 = document.getElementById('sig1');
    var signo2 = document.getElementById('sig2');
    var signo3 = document.getElementById('sig3');
    var n1 = Math.round(Math.random()*10);
    var n2 = Math.round(Math.random()*10);
    var n3 = Math.round(Math.random()*10);
    var n4 = Math.round(Math.random()*10);
    var opcion = Math.round(Math.random()*10);
    puntuacion.innerHTML = puntos;
    $('#num3').hide();
    $('#num4').hide();
    $('#sig2').hide();
    $('#sig3').hide();
 
    if(puntos < 4){
        opcion %= 2;
        switch(opcion){
            case 0:
                resultado = n1 + n2;
                sig1 = '+';
                break;
            case 1:
                resultado = n1 - n2;
                sig1 = '-';
                break;
        }
    }else if(puntos>3 && puntos<8){
        switch(opcion){
            case 0:
                resultado = n1 + n2;
                sig1 = '+';
                break;
            case 1:
                resultado = n1 - n2;
                sig1 = '-';
                break;
            case 2:
                resultado = n1 + n2 + n3;
                sig1 = '+';
                sig2 = '+';
                break;
            case 3:
                resultado = n1 + n2 + n3;
                sig1 = '+';
                sig2 = '+';
                break;
            case 4:
                resultado = n1 + n2 - n3;
                sig1 = '+';
                sig2 = '-';
                break;
            case 5:
                resultado = n1 + n2 - n3;
                sig1 = '+';
                sig2 = '-';
                break;
            case 6:
                resultado = n1 - n2 + n3;
                sig1 = '-';
                sig2 = '+';
                break;
            case 7:
                resultado = n1 - n2 + n3;
                sig1 = '-';
                sig2 = '+';
                break;
            case 8:
                resultado = n1 - n2 - n3;
                sig1 = '-';
                sig2 = '-';
                break;
            default:
                resultado = n1 + n2;
                sig1 = '+';
                break;
        }
        if(opcion>1 && opcion<9){
            $('#num3').show();
            $('#sig2').show();
        }
    }else{
        switch(opcion){
            case 0:
                resultado = n1 + n2 + n3;
                sig1 = '+';
                sig2 = '+';
                break;
            case 1:
                resultado = n1 + n2 - n3;
                sig1 = '+';
                sig2 = '-';
                break;
            case 2:
                resultado = n1 - n2 + n3;
                sig1 = '-';
                sig2 = '+';
                break;
            case 3:
                resultado = n1 - n2 - n3;
                sig1 = '-';
                sig2 = '-';
                break;
            case 4:
                resultado = n1 + n2 + n3 + n4;
                sig1 = '+';
                sig2 = '+';
                sig3 = '+';
                break;
            case 5:
                resultado = n1 + n2 + n3 - n4;
                sig1 = '+';
                sig2 = '+';
                sig3 = '-';
                break;
            case 6:
                resultado = n1 + n2 - n3 + n4;
                sig1 = '+';
                sig2 = '-';
                sig3 = '+';
                break;
            case 7:
                resultado = n1 - n2 + n3 + n4;
                sig1 = '-';
                sig2 = '+';
                sig3 = '+';
                break;
            case 8:
                resultado = n1 + n2 - n3 - n4;
                sig1 = '+';
                sig2 = '-';
                sig3 = '-';
                break;
            case 9:
                resultado = n1 - n2 - n3 + n4;
                sig1 = '-';
                sig2 = '-';
                sig3 = '+';
                break;
            case 10:
                resultado = n1 - n2 - n3 - n4;
                sig1 = '-';
                sig2 = '-';
                sig3 = '-';
                break;
        }
        $('#num3').show();
        $('#sig2').show();
        if(opcion>3){
            $('#sig3').show();
            $('#num4').show();
        }
    }
    num1.innerHTML = n1;
    num2.innerHTML = n2;
    num3.innerHTML = n3;
    num4.innerHTML = n4;
    signo1.innerHTML = sig1;
    signo2.innerHTML = sig2;
    signo3.innerHTML = sig3;
 
    return resultado;
};
 
function fin(){
    $('#juego').hide();
    $('#marcador').slideDown(1500);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error de comparacion de valores

Publicado por Amadeo (21 intervenciones) el 02/05/2015 03:34:27
Yo tambien soy nuevo, pero entiendo que tendrias que definir un 'action' a algun boton para desencadenar alguna accion, no? ¿Dices que funciona al principio? A mi no me hace nada!
Tal vez necesitas algo como:
<form action="action()">
First name:<input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br>
E-mail: <input type="email" name="email" autocomplete="off">
<br>
<input type="submit">
</form>
donde la 'action()' se desencadene al darle al <input> 'Enviar'
Pero realmente no se, como te digo yo tambien soy nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar