136 lines
3.7 KiB
JavaScript
136 lines
3.7 KiB
JavaScript
/*Fonction scripts gérant les questions
|
|
*Est appelée et chargé uniquement dans le fichier run de view/game
|
|
*
|
|
**/
|
|
|
|
|
|
|
|
|
|
var auto_next_time = 30; //Temps de passage automatique à la fonction suivante en secondes
|
|
var save_next_time = 0; //Temps sauvegardé, variable inter-fonctions
|
|
var num = 0; //Numéro de la question en cours
|
|
|
|
/*
|
|
* Affiche la question suivante
|
|
* Args : identifiant de l'appelant
|
|
*/
|
|
function shownext(args)
|
|
{
|
|
//On réinitialise le temps de l'autonext
|
|
save_next_time = 0;
|
|
|
|
//On parse le numéro de la question
|
|
var num_ori = args.toString().substring(args.toString().indexOf("q", 0) + 1, args.toString().indexOf("a", 0));
|
|
|
|
//Sauvegarde du numéro de la question
|
|
num = num_ori;
|
|
|
|
//On parse la réponse
|
|
var rep = args.toString().substring(args.toString().indexOf("a", 0) + 1, args.toString().length);
|
|
|
|
//Si la réponse est null, le joueur n'a pas répondu
|
|
//Par défaut, c'est le code d'une mauvaise réponse => -1
|
|
if(rep == null)
|
|
{
|
|
rep = -1;
|
|
}
|
|
|
|
//On sauvegarde la réponse dans le champ associé
|
|
document.getElementById("saveq" + num).value = rep;
|
|
|
|
num++;
|
|
|
|
//On met à jour les attribut des boutons
|
|
document.getElementById("form_q_b0").setAttribute("onclick", "javascript:shownext('q" + num + "a0')");
|
|
document.getElementById("form_q_b1").setAttribute("onclick", "javascript:shownext('q" + num + "a1')");
|
|
document.getElementById("form_q_b2").setAttribute("onclick", "javascript:shownext('q" + num + "a2')");
|
|
|
|
try
|
|
{
|
|
document.getElementById("form_q_text").innerHTML = document.getElementById("form_q" + num).innerHTML;
|
|
}
|
|
catch (error)
|
|
{
|
|
//Il n'y a plus de question
|
|
//On envoi le formulaire
|
|
document.getElementById("form_q").submit();
|
|
}
|
|
}
|
|
|
|
|
|
/*
|
|
*Démarre la partie
|
|
*Rend visible les premier éléments
|
|
*/
|
|
function startgame()
|
|
{
|
|
//On récupère le formulaire de démarrae
|
|
var form = document.getElementById("form_start");
|
|
|
|
//On supprime tous ses noeuds enfants
|
|
while (form.firstChild)
|
|
{
|
|
form.removeChild(form.firstChild);
|
|
}
|
|
|
|
//On affiche le formulaire finale
|
|
document.getElementById("form_q").setAttribute("style", "visibility : auto");
|
|
|
|
//On lance le chrono
|
|
starttimer();
|
|
}
|
|
|
|
|
|
/*
|
|
* Démarre et affiche le temps du chrono
|
|
*/
|
|
function starttimer()
|
|
{
|
|
var time = 0;
|
|
|
|
//On lance aussi le timer qui passe automatiquement à la question suivante
|
|
start_autonexttimer();
|
|
|
|
//On lance le timer
|
|
setInterval(function()
|
|
{
|
|
//On met à jour le temps
|
|
time +=100;
|
|
var timer_date = new Date(time);
|
|
var timer = new Date(time).toLocaleTimeString();
|
|
|
|
//On parse les minutes et les secondes pour l'affichage'
|
|
var minuts = timer.split(":")[1];
|
|
var seconds = timer.split(":")[2];
|
|
|
|
//On affiche la chaîne modifiée
|
|
document.getElementById("time").innerHTML = minuts + "m " + seconds + "s " + timer_date.getMilliseconds() + "ms";
|
|
|
|
//On stocke le temps en millisecondes dans le champ caché
|
|
document.getElementById("form_q_time").setAttribute("value", time);
|
|
|
|
}, 100);
|
|
|
|
|
|
}
|
|
|
|
/*
|
|
* Lance le timer chargé de passer automatiquement à la question suivante au bout de 3 secondes
|
|
*/
|
|
function start_autonexttimer()
|
|
{
|
|
//On lance le timer
|
|
setInterval(function()
|
|
{
|
|
save_next_time +=1;
|
|
|
|
//Si le temps est un multiple de 3s, on passe à la question suivante
|
|
if((save_next_time % 30) == 0)
|
|
{
|
|
num++;
|
|
shownext('q' + num + 'a3');
|
|
}
|
|
|
|
}, 1000);
|
|
}
|