Necesito preguntar a quien lea esto de si saben cual es mi error con la siguiente funcion, aparentemente el error esta en los for, pero ya no tengo idea de como arreglarlo.
![U_U](http://static.forosdelweb.com/fdwtheme/images/smilies/nods.png)
Explico brevemente:
-Estoy intentando realizar una especie de "jueguito" con javascript imitando carreras de auto, donde unas imagenes de autos se mueven por las celdas de una fila en una tabla, y el auto que primero llega a la celda final de su fila: gana.
-Para calcular el movimiento del auto un jugador ingresa una cantidad de combustible y una cantidad de recarga al iniciar la carrera.
-Y asi el auto se mueve tantos casilleros segun el combustible que tiene, multiplicado por un numero aleatorio entre 1 y 4 que representa la "suerte" del jugador.
-Pero el problema es que al iniciar el programita, a veces al darle click a un boton (uno para cada auto,para que comience a moverse) este no funciona, el auto no aparece ni se mueve, y otras veces si, incluso a veces aparece uno de los autos y el otro no, no encuentro el patron.
Esta es la funcion que utilizo para calcular el movimiento del auto:
Código Javascript:
Ver original
$(document).ready(iniEventos); var j=0; $(document).ready(iniEventos2); var k=0; function iniEventos(){ $("#aceptar1").click(movimiento); } function movimiento(){ var suerte=suertes[0] var destreza=destrezas[0] var desplazamiento=desplazamientos[0] var tr=$("#jugador1"); var carril="<img src='camino.JPG' alt='camino'/>"; var foto="<img src='GIF063.gif' alt='camino'/>"; var td=tr.children("td"); var movimiento=(desplazamiento*(suerte+destreza))%10 if(movimiento=0){ movimiento=1} if ($(this).attr("id")=="aceptar1"){ for (var i=j; i<(movimiento+j); i++){ if ($(td[i]).next().html()!=null){ window.setTimeout(mover, i*100,$(td[i]),carril,foto,true); } else{ alert("se terminó la pista"); break; } } j+=movimiento; } } function mover(td,carril,foto,flecha){ if (flecha) { td.empty(); td.append(carril); td=td.next(); td.empty(); td.append(foto); } } //aca se termina la funcion que hace posible el movimiento del primer auto function iniEventos2(){ $("#aceptar2").click(movimiento2); } function movimiento2(){ var suerte2=suertes[1] var destreza2=destrezas[1] var desplazamiento2=desplazamientos[1] var tr=$("#jugador2"); var carril="<img src='camino.JPG' alt='camino'/>"; var foto="<img src='GIF063.gif' alt='camino'/>"; var td=tr.children("td"); var movimiento2=(desplazamiento2*(suerte2+destreza2))%10 if(movimiento2=0){ movimiento2=1} if ($(this).attr("id")=="aceptar2"){ for (var i=k; i<(movimiento2+k); i++){ if ($(td[i]).next().html()!=null){ window.setTimeout(mover2, i*100,$(td[i]),carril,foto,true); } else{ alert("se terminó la pista"); break; } } k+=movimiento2; } } function mover2(td,carril,foto,flecha){ if (flecha) { td.empty(); td.append(carril); td=td.next(); td.empty(); td.append(foto); } } //aca se termina la funcion que hace posible el movimiento del segundo auto
(no se asusten, son mas o menos la misma funcion dos veces, uno para cada jugador)
Yo se que escribi mucho y talvez pido demasiado, pero si alguien puede encontrarle el eror a esa funcion ya que a veces no funciona le agradesco infinitamente! Ya no tengo a donde mas recurrir. xD
- No estoy seguro si es el "for" de cada funcion , o si calculo mal y el movimiento termina siendo igual a cero en ocasiones. :S