/*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); }