Projet scolaire, besoin d'aide

Fermé
Gogo.62 Messages postés 56 Date d'inscription samedi 24 août 2013 Statut Membre Dernière intervention 10 avril 2015 - Modifié par Whismeril le 13/04/2015 à 18:29
 Gogo.62 - 13 avril 2015 à 18:06
Bonjour, je viens vous demander de l'aide, pour mon projet scolairede fin d'année de spécialité ISN du programme de Terminale S.
Le code est bon, je dois juste mettre un compteur sur les bonnes réponses pour les afficher à chaque question et pour au final en faire un pourcentage.
Je pensais le faire avec une fonction conditionnelle, mais je ne trouve pas vraiment comment faire.
Je vous mets le code en dessous, merci d'avance.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"[http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd]">
<html>
  <head>
  <link href="csscodedelaroute.css" rel="stylesheet" type="text/css" media="screen">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Code de la route ISN</title>
  
  </head>
  <body>
  <h6><p> Examen code de la route</p></h6>




<div id="chrono">30</div> <!-- Le depart est a trente secondes -->
  <h2><img id="picture" src='' height="500" width="1000"/></h2>
   
   <h1><div id="question1"></div></h1> 
   
   <h5><div class="bouton"id="lElementQueJeVeux">
   Suivant</div></h5>
   
  
   <h2> <div id="reponse1"></div></div>
  

  <div id="reponse2"></div>
   
   
   <div id="reponse3"></div></h2>

 
   
 

   

  

   
   
<script type="text/javascript"> //Timer chrono debut
 var lancer=function(){
  timer= window.setInterval(affiche,1000); //Le timer change toutes les 1000msecondes -->1secondes
 }
 var affiche=function(){
 
  if (compteur==-1){
   window.clearInterval(timer);
 
  }
  else{
   var elt=document.getElementById("chrono");
   elt.innerHTML=compteur;
   compteur=compteur-1; //?haque 1000msecondes de pass? le timer enl? 1 seconde
  }
 
 }

 
 var action = function () {
window.clearInterval(timer); //arret du timer
compteur=30;//reinitalisation du compteur




var elt = document.getElementById("picture"); //chargement de l'image
elt.src=tabimg[j].src;

var elt1=document.getElementById("question1"); // chargement de la question
elt1.innerHTML=tabquest[j];

var eltrep1=document.getElementById("reponse1");
eltrep1.innerHTML=tabrep1[j];

var eltrep1=document.getElementById("reponse2");
eltrep1.innerHTML=tabrep2[j];

var eltrep1=document.getElementById("reponse3");
eltrep1.innerHTML=tabrep3[j];



j=j+1;

lancer();




}

  var setupEvents = function ()  {

  // abonnement de la fonction action pour l'?ment d'id lElementQueJeVeux en r?tion ?n click
  var unElement = document.getElementById("lElementQueJeVeux");
  unElement.addEventListener("click",action);
  var rep1 = document.getElementById("reponse1");
 rep1.addEventListener("click",ok);
 var rep2 = document.getElementById("reponse2");
 rep2.addEventListener("click",ok);
 var rep3 = document.getElementById("reponse3");
 rep3.addEventListener("click",ok);
 
 
 
 
 
 lancer();
 action();//appel de la fonction lancer au chargement de la page
  // ... on r?te le m? sch? ici si on veut mettre en place d'autres abonnements
}



// ----------------------------------------
/* Documentation de la fonction action


*/// D?t progvar timer;var compteur=29; //Le chrono d?rre lui ?9 secondesvar j=0;// Tableau IMGvar tabimg=new Array;tabimg[0]=new Image();tabimg[0].src='0.jpg';tabimg[1]=new Image();tabimg[1].src='2.jpg';tabimg[2]=new Image();tabimg[2].src="3.jpg";tabimg[3]=new Image();tabimg[3].src="4.jpg";tabimg[4]=new Image();tabimg[4].src="5.jpg";// Tableau Questionvar tabquest=new Array("Question n°1 : La vitesse maximum autorisée est:"," Question n°2 : Dans cette situation :","Question n°3 : Pour aller à Evry , je me positionne :","Question n°4 : Dans cette situation , je me deplace  :","Question n°5  :Que dois-je faire ?");// Reponse 1var tabrep1= new Array("1- 50 km/h  ","1- Je suis prioritaire","1 -A droite","1- 30 km/h","1- Je fais un appel de phares ");// Reponse 2var tabrep2= new Array("2- 70 km/h ","2- Je ne suis pas prioritaire","2- Au milieu","2- 40 km/h","2- Je klaxonne");// Reponse 3var tabrep3= new Array("3- 90 km/h ","3- Personne n'est prioritaire","3- A gauche","3- 50 km/h","3- Je m'écarte"); var tabrepvraie= new Array("reponse1","reponse2","reponse1","reponse1","reponse3");function ok(){var repcor=document.getElementById(tabrepvraie[j-1]);if(this==repcor){alert("La réponse est BONNE , veuillez appuyer sur le bouton suivant.");}else {alert("La réponse est FAUSSE , veuillez appuyer sur le bouton suivant.");}}         // pour appeler la fonction ci-dessus quans la page est charg?window.addEventListener("load",setupEvents);            </script>       </body></html>


EDIT: Précision du langage dans la coloration syntaxique.

1 réponse

Joanae Messages postés 6 Date d'inscription jeudi 9 avril 2015 Statut Membre Dernière intervention 2 juin 2015
10 avril 2015 à 11:54
Si j'ai bien compris ton but est de comparais la réponse obtenu avec la réponse attendu et si jamais il y a correspondance incrémenté le taux de bonne réponse de 1 c'est ça?
0
Gogo.62 Messages postés 56 Date d'inscription samedi 24 août 2013 Statut Membre Dernière intervention 10 avril 2015
10 avril 2015 à 19:23
Oui voilà c'est ça, j'ai réussi, j'ai trouvé le bon code, maintenant il ne me reste plus qu'à essayer de bloquer la page quand le clic est effectué sur une réponse, pour ne plus pouvoir recliquer sur une autre.
0
Joanae Messages postés 6 Date d'inscription jeudi 9 avril 2015 Statut Membre Dernière intervention 2 juin 2015
13 avril 2015 à 15:22
Tu as essayer en attribuant un CSS à différent ID et du coup en modifiant l'ID de l'élément réponse?
Ca te permetrait soit de griser les questions ou réponse voir carrement les faire disparaitre et en faire apparaitre d'autre à la place
0
Non j'ai pas essayé ça
0