Hola buenas,
Estoy aprendiendo a programar javascript y no se me ocurre ninguna forma minimamente decente para comparar TODOS los valores de un array con un numero, y que si todos las posiciones tienen el mismo numero, haga algo.
Como me estoy leyendo y me he explicado con el culo mejor pongo un ejemplo.
Estoy haciendo un ahorcado y quiero que cuando se haya acertado todas las letras... me diga... HAS GANADO!!
El tema es que la unica solución que se me ocurre es una chapuza pues es con un if de la siguiente forma.
Basicamente en palabras sería...
Si todos los valores del array coinciden... muestrame un alert
[code]if ( formu[0] == p1.charAt(0) && formu[1] == p1.charAt(1) && formu[2] == p1.charAt(2) )
{
alert("El juego ha terminado porque has GANADO!!!")
}[/code]
Y asi sucesivamente con todos los valores de un array.
Por si quereis revisarlo mi código entero es este:
<script type="text/javascript">
var w;
w= new Array(10);
w[0]="choverto";
w[1]="morlacos";
w[2]="mameluco";
w[3]="hijoputa";
w[4]="martukis";
w[5]="pelopopo";
w[6]="downdown";
w[7]="precioso";
w[8]="tuiteado";
w[9]="javasphp";
aleat=Math.random()*9;
aleat=Math.round(aleat);
function bordes(x, color)
{
var bloquea=false;
if(color=='2px solid green')
{
bloquea=true;
}
switch (x)
{
case 0:
document.letter.l0.style.border = color;
if(bloquea)
document.letter.l0.disabled=true;
break;
case 1:
document.letter.l1.style.border = color;
if(bloquea)
document.letter.l1.disabled=true;
break;
case 2:
document.letter.l2.style.border = color;
if(bloquea)
document.letter.l2.disabled=true;
break;
case 3:
document.letter.l3.style.border = color;
if(bloquea)
document.letter.l3.disabled=true;
break;
case 4:
document.letter.l4.style.border = color;
if(bloquea)
document.letter.l4.disabled=true;
break;
case 5:
document.letter.l5.style.border = color;
if(bloquea)
document.letter.l5.disabled=true;
break;
case 6:
document.letter.l6.style.border = color;
if(bloquea)
document.letter.l6.disabled=true;
break;
case 7:
document.letter.l7.style.border = color;
if(bloquea)
document.letter.l7.disabled=true;
break;
}
}
function comprobar()
{
var formu;
formu = new Array(8);
formu[0]=document.letter.l0.value;
formu[1]=document.letter.l1.value;
formu[2]=document.letter.l2.value;
formu[3]=document.letter.l3.value;
formu[4]=document.letter.l4.value;
formu[5]=document.letter.l5.value;
formu[6]=document.letter.l6.value;
formu[7]=document.letter.l7.value;
var p1, p, yes;
p1=w[aleat];
p=0;
var verde, rojo, amarillo;
verde='2px solid green';
rojo='2px solid red';
amarillo='2px solid yellow';
for (p=0;p<8;p++)
{
if ( formu[p] == p1.charAt(p) )
{
bordes(p, verde);
document.letter.pepo.value = "Has acertado una letra, sigue así!"
}
else
{
var i;
for (i=0, yes=false;i<8 && yes == false;i++)
{
if ( formu[p] == p1.charAt(i) )
{
yes=true;
bordes(p, amarillo);
document.letter.pepo.value = "Una de las letras está contenida en la palabra"
}
else
{
bordes(p, rojo);
}
}
}
}
if ( document.papo.intentos.value <= 8 && document.papo.intentos.value > 1 )
{
document.papo.intentos.value--;
} else
{
alert("Has agotado tus intentos...nPrueba de nuevo!");
location.reload(true);
}
if ( formu[0] == p1.charAt(0) && formu[1] == p1.charAt(1) && formu[2] == p1.charAt(2) )
{
alert("El juego ha terminado porque has GANADO!!!")
}
}