Para los que me proponen ver el codigo completo este es:
HTML:
<html>
<head>
<script type="text/javascript" src="EjCp1.js"></script>
</head>
<body bgcolor="black">
<form name="f">
<img src="rojo.gif" id="im1" onMousedown="click(1)"/><img src="azul.gif" id="im2" onMousedown="click(2)"/>
</br>
<img src="amarillo.gif" id="im3" onMousedown="click(3)"/><img src="verde.gif" id="im4" onMousedown="click(4)"/>
</br>
<input type="button" value=" JUGAR! " name="jugar" onClick="comienzo()">
</form>
</body>
</html>
JS:
var nivel=0
var cont
var cuantasQuedan=0
var usuario=false
var clicksPc=new Array();
var clicksUsuario=new Array();
function comienzo(){
if(!usuario){ //Con esto se comprueba que el usuario no esta respondiendo
cont=0
//Lo ponemos a true para no poder volver a pulsar JUGAR sin haber jugado
usuario=true;
nivel++
var aleat
var ficha
var x
for(x=0;x<nivel;x++){
aleat = Math.random() * 3 //Jugamos con 4 teclas
aleat = Math.round(aleat)
ficha = parseInt(1) + aleat
marcarFicha(ficha) //Se pretende marcar 1 sola ficha
setTimeout("", 1000)
clicksPc[x]=ficha //Almacenamos en el array la ficha escogida por el PC
cuantasQuedan++
}
}
}
function marcarFicha(ficha){
switch(ficha){
case 1:
ponerImagen(1) //"Iluminar" imagen
setTimeout("ponerImagenOrig(1)", 1000) //Poner la imagen original
break;
case 2:
ponerImagen(2)
setTimeout("ponerImagenOrig(2)", 1000)
break;
case 3:
ponerImagen(3)
setTimeout("ponerImagenOrig(3)", 1000)
break;
case 4:
ponerImagen(4)
setTimeout("ponerImagenOrig(4)", 1000)
break;
}
}
function ponerImagen(img){ //Metodo para iluminar imagenes
switch(img){
case 1:
document.getElementById("im1").src = "roBlanco.gif"
break;
case 2:
document.getElementById("im2").src = "azBlanco.gif"
break;
case 3:
document.getElementById("im3").src = "amBlanco.gif"
break;
case 4:
document.getElementById("im4").src = "veBlanco.gif"
break;
}
}
function ponerImagenOrig(img){//Metodo para poner las imagenes originales
switch(img){
case 1:
document.getElementById("im1").src = "rojo.gif";
break;
case 2:
document.getElementById("im2").src = "azul.gif";
break;
case 3:
document.getElementById("im3").src = "amarillo.gif";
break;
case 4:
document.getElementById("im4").src = "verde.gif";
break;
}
}
function click(img){//Metodo que gewstiona el onMouseDown
switch(img){
case 1:
ponerImagen(1)
setTimeout("ponerImagenOrig(1)", 1000)
break;
case 2:
ponerImagen(2)
setTimeout("ponerImagenOrig(2)", 1000)
break;
case 3:
ponerImagen(3)
setTimeout("ponerImagenOrig(3)", 1000)
break;
case 4:
ponerImagen(4)
setTimeout("ponerImagenOrig(4)", 1000)
break;
default:
document.write("ERROR");
}
clicksUsuario[cont]=img //Guardamos la pulsacion del usuario
cont++
cuantasQuedan--
if(cuantasQuedan==0){ //Si hemos clickao tantas veces como pulsaciones hizo el pc...
var booleana = comprobarResultados();//Comprobamos...
if(booleana){
alert("BIEN HECHO!!")
}
else{
alert("MALLLL!!")
nivel--
}
usuario=false
}
}
function comprobarResultados(){
var x
for(x=0;x<nivel;x++){
if(clicksPc[x]!=clicksUsuario[x]){
return false
}
}
return true
}
No lo puse desde un principio porque me parece bastante código y no creo que tengais tanto tiempo para dedicarme. Para el que se digne a leerlo...tengo 1 par de preguntas...si sabe contestarme le estaría muy agradecido. En el FF se puede jugar perfectamente pero al incrementar de nivel las iluminaciones no se hacen de 1 en 1...si no todas a bloque siendo imposible quedarse con la secuencia, es como si ignorase el setTimeOut. En IE7 directamente me ignora el onMouseDown. Gracias de antemano!!
#8 probare a hacerlo como tu me dices, no lo hice hasta ahora porque estuve muy liado, tiene mejor pinta la verdad. Gracias
PD. #8 ya lo probe y la verdad es que es mucho más limpio y más legible el código de esta forma. Me gusta, cambia todo perfectamente. Muchas gracias. Ahora el problema son las otras 2 cuestiones...