Foros del Web » Programando para Internet » Javascript »

Pasapalabra

Estas en el tema de Pasapalabra en el foro de Javascript en Foros del Web. Gracias por tu ayuda !...
  #1 (permalink)  
Antiguo 07/03/2008, 18:17
 
Fecha de Ingreso: marzo-2008
Mensajes: 1
Antigüedad: 16 años, 1 mes
Puntos: 0
Pasapalabra

Gracias por tu ayuda !

Última edición por coonze; 08/03/2008 a las 12:18
  #2 (permalink)  
Antiguo 07/03/2008, 19:23
Avatar de derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Re: Pasapalabra

Hola coozne:

Creo que deberías replantear tu sistema de pregunta y luego if-else a un esquema de código más separado entre datos y funcionamiento, las dos partes separadas y diferenciadas. Creo que es lo que mencionas de tablas (arrays?). Si tienes las preguntas en un array está más controlado. Es más, yo haría un array para preguntas no contestadas y otro para preguntas contestadas. De esa manera sólo hay que ir recorriendo el primero, el segundo lo dejamos en paz (en realidad no requieres ni el segundo ahora que me doy cuenta).

El esquema que te propongo sería así:

Código PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<
head>
<
meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" />
<
meta name="Author" content="derkeNuke" />
<
title>Página nueva</title>
<
style type="text/css">

</
style>
</
head>

<
body>


<
script type="text/javascript">
<!--

var 
vueltasTotales 2;

var 
pregs1 = new Array();            // todas las preguntas, iremos eliminando las contestadas
pregs1["a"] = "Amb la A , quin es l'ocell nombrat com imperial?";
pregs1["b"] = "Amb la B , quin es el nom de la ciutat del F.C.Barcelona?";
pregs1["c"] = "Amb la C , lloc tencat i descobert que serveix per tancar al bestia";
pregs1["d"] = "Amb la D , forma geometrica de 6 costats que serveix per d'ajuda en jocs";
// ....
var pregs2 = new Array();            // preguntas que dejamos para la segunda vuelta (o la vuelta n)
var respuestas = new Array();
respuestas["a"] = "aguila";
respuestas["b"] = "barcelona";
respuestas["c"] = "corral";
respuestas["d"] = "dau";
// ....




function pasapalabra() {
    
juego:
    for(var 
vueltaActual=1preguntasvueltaActual<=vueltasTotalesvueltaActual++) {
        if( 
vueltaActual==preguntas pregs1;        // usamos las preguntas correspondientes a cada ronda    
        
else if( vueltaActual==preguntas pregs2;
        for(var 
letra in preguntas ) {
            var 
respuesta prompt("Estamos en la vuelta "+vueltaActual+".\r"+preguntas[letra]+"\r\r(Cancelar para Pasapalabra)""");
            if( !
respuesta ) {        // Pasapalabra
                
alert("Pasamos palabra");
                
pregs2[letra] = preguntas[letra];    // pasamos la pregunta a pregs2
                
delete pregs1[letra];
                break 
juego;
            }
            else {                                            
// Ha habido respuesta
                
if( respuesta.toLowerCase() == respuestas[letra].toLowerCase() ) {
                    
alert("¡BIEN!");
                    
delete pregs1[letra];
                }
                else {
                    
alert("MAL...");
                    
delete pregs1[letra];
                }
            }
        }
    }
    
alert("Has recorrido todas las preguntas en las 2 vueltas.");
}

// -->
</script>

<button type="button" onclick="pasapalabra(); this.value='Seguir'">Empezar</button>

</body>
</html> 
Quizás sería justificable meter las preguntas en objetos, pero me ha parecido complicar demasiado para obtener el mismo resultado.

Espero que te inspire.

Saludos
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:24.