Calculer Le score d'un QCM

Fermé
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020 - Modifié le 8 janv. 2020 à 17:42
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020 - 11 janv. 2020 à 15:09
Bonjour,

Comme l'indique le titre je voudrais avoir un bouton score en bas de ma page m'indiquant le score du QCM 1 réponse juste vaut 3 point et une réponse fausse voit -1 point et qu'une seule réponse par question est autorisée

(Je sais q'u'es Javascript on peut voir les réponses, mais c'est un projet scolaire, donc menfou :))



LE HTML


<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>QCM NSI</title>
<script language="javascript">
</script>
<link rel="stylesheet" href="styleqcm.css">
</head>
<body>

<form name="qcm">

<center><h1><mark><u>QCM NSI</u></mark></h1></center>

<h3>Bonjour et bienvenue dans le meilleur QCM d'NSI au monde, constitué de 10 questions dont UNE seule réponse par question est acceptée, sinon la réponse à la question sera considérée comme fausse et ne vous apportera AUCUN point. </h3>

<center><h1> <mark> <label id="LblClignotant">Good Luck :)</label> </mark> </h1></center>



<strong>Question 1 </strong>:
On donne ci-dessous un programme écrit en python :

<p  id = "prg1"|>
a = 10<BR>
for index in range(4):<BR>
 a = a + index<BR>
print(a)<BR>
</p>

Quelle valeur est affichée après exécution ?
<ul>
     <li><input type="checkbox"  name="question1" value="a"> 12.
     <li><input type="checkbox"  name="question1" value="b"> 14.
     <li><input type="checkbox"  name="question1" value="c"> 16.
     <li><input type="checkbox"  name="question1" value="d"> 13.
</ul>

  <input type="button" value="correction" onclick="correction1()">
  <input type="button" value="corrigé" onclick="corrige1()">
<BR>
<BR>
<BR>
<strong>Question 2 </strong> :
en quelle année le langage python est-il apparu ?
<ul>
     <li><input type="checkbox" name="question2" value="a"> 1780.
     <li><input type="checkbox"  name="question2" value="b"> 1930.
     <li><input type="checkbox"  name="question2" value="c"> 2002.
     <li><input type="checkbox"  name="question2" value="d"> 1989.
</ul>

  <input type="button" value="correction" onclick="correction2()">
  <input type="button" value="corrigé" onclick="corrige2()">
<BR>
<BR>
<BR>
<strong>Question 3 :</strong>
La langage HTML est un langage de :
<ul>
     <li><input type="checkbox"   name="question3" value="a"> Programmation.
     <li><input type="checkbox"  name="question3" value="b"> Ecriture.
     <li><input type="checkbox"  name="question3" value="c"> Description.
     <li><input type="checkbox"  name="question3" value="d"> Localisation.
</ul>

  <input type="button" value="correction" onclick="correction3()">
  <input type="button" value="corrigé" onclick="corrige3()">
<BR>
<BR>
<BR>
<strong>Question 4 :</strong>
En quelle année le langage HTML est-il apparu ? :
<ul>
     <li><input type="checkbox"  name="question4" value="a"> 1990.
     <li><input type="checkbox"  name="question4" value="b"> 1969.
     <li><input type="checkbox"  name="question4" value="c"> 2020.
     <li><input type="checkbox" name="question4" value="d"> 1991.
</ul>

  <input type="button" value="correction" onclick="correction4()">
  <input type="button" value="corrigé" onclick="corrige4()">
<BR>
<BR>
<BR>
<strong>Question 5 :</strong>
L'inventeur du langage Python est :
<ul>
     <li><input type="checkbox"  name="question5" value="a"> Elon Musk.
     <li><input type="checkbox"  name="question5" value="b"> Guido van Rossum.
     <li><input type="checkbox"  name="question5" value="c"> Yoshiro Nakamatsu.
     <li><input type="checkbox" name="question5" value="d"> Gollum Ofthering.
</ul>
  <input type="button" value="correction" onclick="correction5()">
  <input type="button" value="corrigé" onclick="corrige5()">
<BR>
<BR>
<BR>
<strong>Question 6 :</strong>
Cette table de vérité est le table de :
<BR>
<p  id = "prg1"|>
   
  <span id='marge'/>0  0  0<BR>
  <span id='marge'/>0  1  1<BR>
  <span id='marge'/>1  0  1<BR>
  <span id='marge'/>1  1  0<BR>

</p>


<ul>
     <li><input type="checkbox"  name="question6" value="a"> AND.
     <li><input type="checkbox"  name="question6" value="b"> XOR.
     <li><input type="checkbox"  name="question6" value="c"> OR.
     <li><input type="checkbox"  name="question6" value="d"> NON A.
</ul>
  <input type="button" value="correction" onclick="correction6()">
  <input type="button" value="corrigé" onclick="corrige6()">
<BR>
<BR>
<BR>
<strong>Question 7 :</strong>
Quel est le nom du programme dans python qui sert à dessiner des formes géométriques ? :
<ul>
     <li><input type="checkbox"  name="question7" value="a"> Spyder
     <li><input type="checkbox"  name="question7" value="b"> Twitter
     <li><input type="checkbox"  name="question7" value="c"> Turtle
     <li><input type="checkbox"  name="question7" value="d"> Shark
</ul>
  <input type="button" value="correction" onclick="correction7()">
  <input type="button" value="corrigé" onclick="corrige7()">
<BR>
<BR>
<BR>
<strong>Question 8 :</strong>
Comment s'écrit le nombre 671 en binaire ? :
<ul>
     <li><input type="checkbox"  name="question8" value="a"> 1
     <li><input type="checkbox"  name="question8" value="b"> 1010100001
     <li><input type="checkbox"  name="question8" value="c"> 1010011110
     <li><input type="checkbox"  name="question8" value="d"> 1010011111
</ul>
  <input type="button" value="correction" onclick="correction8()">
  <input type="button" value="corrigé" onclick="corrige8()">
<BR>
<BR>
<BR>
<strong>Question 9 : </strong>
Ceci est un programme pour échanger les valeurs de deux variables, completez les petits pointillés :

<p  id = "prg1"|>

A = input("Donner la valuer de A:")<BR>
B = input("Donner la valeur de B:")<BR>

<span id='marge2'/>.....<BR>
<span id='marge2'/>.....<BR>
<span id='marge2'/>.....<BR>

print("A = : " , A)<BR>
print("B = : " , B) <BR>
  

</p>
<ul>
<span id='marge2'/>A = C
     <li><input type="checkbox" name="question9" value="a"> B = C<BR> <span id='marge2'/>A = C<BR>
<BR>
<span id='marge2'/>C = A     

     <li><input type="checkbox"  name="question9" value="b"> A = B<BR> <span id='marge2'/>B = C<BR>
<BR>
<span id='marge2'/>A = A     
     <li><input type="checkbox"  name="question9" value="c"> B = B<BR> <span id='marge2'/>C = C<BR>
<BR>     
<span id='marge2'/>C = A     
     <li><input type="checkbox"  name="question9" value="d"> A = B<BR> <span id='marge2'/>C = A
</ul>
  <input type="button" value="correction" onclick="correction9()">
  <input type="button" value="corrigé" onclick="corrige9()">
<BR>
<BR>
<BR>
<strong>Question 10 : </strong>
L'intensité de chaque couleur est donnée par un entier compris entre :
<ul>
     <li><input type="checkbox"  name="question10" value="a"> 0 et 256
     <li><input type="checkbox"  name="question10" value="b"> 0 et 258
     <li><input type="checkbox"  name="question10" value="c"> 0 et 255
     <li><input type="checkbox"  name="question10" value="d"> 12 et 12.1
</ul>
  <input type="button" value="correction" onclick="correction10()">
  <input type="button" value="corrigé" onclick="corrige10()">
<BR>
<BR>
<BR>

Pour  <strong>TOUT</strong>  effacer <input type="reset" value="effacer">
<BR>
<BR>
<input type="button" value="Score" onclick="getScore()">
</form>
<script src="scriptqcm.js"></script>




</body>
</html>



LE SCRIPT

function correction1() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question1")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question1")[2].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}



function correction2() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question2")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question2")[3].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}



function correction3() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question3")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question3")[2].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}



function correction4() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question4")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question4")[0].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}


function correction5() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question5")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question5")[1].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}



function correction6() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question6")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question6")[1].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}


function correction7() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question7")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question7")[2].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}


function correction8() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question8")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question8")[3].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}


function correction9() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question9")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question9")[1].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}

function correction10() {
var s = 0;
for (index=0; index <=3;index++) {
s = s + document.getElementsByName("question10")[index].checked;
}
console.log(s);
if (s == 0) {
alert("vous n'avez pas répondu, vous n'obtenez aucun point");
}
else if (s ==1) {
if  (document.getElementsByName("question10")[2].checked) {
alert("bravo, c'est une bonne réponse, vous obtenez 3 points");
}
else { alert (" C'est une réponse fausse, vous perdez 1 point");
}
}
else {
alert("vous avez coché "+s+" réponses alors qu'il n'y a qu'une bonne réponse, vous perdez 1 point");
}
}





var signe = -1;
var clignotementFading = function(){
var obj = document.getElementById('LblClignotant');
if (obj.style.opacity >= 0.96){
signe = -1;
}
if (obj.style.opacity <= 0.04){
signe = 1;
}
obj.style.opacity = (obj.style.opacity * 1) + (signe * 0.04);
};

periode = setInterval(clignotementFading, 85 );






Merci d'avance

4 réponses

Bonjour
avez vous une question? où est ce que vous bloquez?

Je vous conseille de virer tout les 'alert' qui est une fonction bloquante indiquant une alerte et non le fonctionnement normal du programme par exemple en écrivant directement dans la page(évitez aussi document.write bien sûr).

Sinon pour additionner des valeurs en Javascript et en programmation en général vous devez utiliser le symbole '+', du moment que vos variables sont bien identifiées de 'type' numérique.

Autre chose dans un formulaire si le script doit fonctionner dans la page vous devez désactiver le comportement du bouton d'envoi(submit) par défaut qui redirige(voir attribut method) vers une autre page où la même ce qui reviens à supprimer toute présente de script(celui ci étant effectué à nouveau) et bien sûr supprimer toutes les valeurs indiquées par le formulaire.
à moins de les traiter séparément(envoi vers une autre page affichant les résultats ou traitement serveur PHP etc...) le formulaire ne doit pas être validé(ce qui envoit les données des champs vers une autre page).


En regardant votre script je me rends compte que vous n'avez pas vraiment compris les fonctions.
Vous écrivez 10 fonction correction de façon identique(quelle perte de temps) si ce n'est pour un détail.
Ne serais il pas plus simple d'utiliser un paramètre et une seule fonction à la place des 10 que vous avez?

Bref vous n'avez pas fait grand chose et ce que vous avez est plutôt mal fait, recommencer en suivant par exemple les explications du cours ou simplement en apprenant comment marchent les fonction s en JavaScript.
1
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 323
8 janv. 2020 à 17:43
Bonjour,

Merci de saisir ton code en lui attribuant la couleur syntaxique et la forme correcte avec le bouton
<>
.
0
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020
8 janv. 2020 à 18:13
Bonjour,

Comment faire ?
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 323 > Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020
8 janv. 2020 à 18:29
Qu'ai-je écrit ?
                                        ...avec le bouton
<>
.
0
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020 > Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023
8 janv. 2020 à 18:34
Je ne connais pas ces boutons, vous parlez des guillemets <> ?
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 323 > Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020
8 janv. 2020 à 18:54
Regarde, quand tu crées ou édite un message, en haut de la fenêtre d'édition...
0
Chris 94 Messages postés 50978 Date d'inscription mardi 8 janvier 2008 Statut Modérateur Dernière intervention 17 février 2023 7 323 > Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020
8 janv. 2020 à 19:40
Tu peux aussi choisir la mise en forme et la couleur syntaxique... A lire :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020
Modifié le 8 janv. 2020 à 18:17
Bonjour,

Je bloque, désolé je sais c'est brouillon, mais je commence a peine, avec un prof qui n'est pas prof de Code à la base (il est prof de Maths), donc c'est vachement compliqué.

Je dois lui rendre sous peu, j'ai tout fait sauf le bouton Score et je ne vois pas comment le réaliser. Pouvez-vous m'aider ?

Et puis comment il veut un bouton sous chaque question ba je vois pas comment mettre une seule fonction qui en fait 10 :/
0
Bonjour,

> Citation
> Et puis comment il veut un bouton sous chaque question ba je vois pas comment mettre une seule fonction qui en fait 10 :/

function correction(question_name, reponse_index) {
    // code
}

Et dans le bouton de validation, par exemple pour la première question.

<input type="button" value="correction" onclick="correction('question1', 2)">


Autre chose, les balises li, ça se ferme (sont gentils les navigateurs), s'il n'y a qu'une seule réponse possible, alors il faut utiliser des types radio et pas checkbox.

Un score, c'est juste une variable à incrémenter si une réponse donnée est correcte, c'est pratiquement ce qu'il y a de plus facile à faire ici, je ne comprends même pas ce qui te pose problème.
0
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020 > trifou
9 janv. 2020 à 13:20
<input type="button" value="correction" onclick="correction('question1', 2)"> 


Avec la commande ci-dessus en gros, je peux faire en sorte juste en changeant le numéro que ça corrige toutes les questions ? (Et après je l’incorpore dans les boutons)

Ba j'ai commencé le html il y a quelques jours pas plus, je sais pas ce qui est "facile" ou "difficile", je veux juste un bouton qui calcule le score en fonction des points que ça rapporte.
0
trifou > Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020
9 janv. 2020 à 17:12
Oui, c'est le principe d'une fonction, En changeant les deux paramètres, donc le name du groupe de checkbox (à changer en radio), et l'indice de la bonne réponse dans le groupe.

Pour la question 2, ce sera
correction('question2', 3)


Et un début de fonctions pourrait se faire alors

const NOMBRE_QUESTIONS = 10;
var score = 0;
var questions = [];


function correction(question_name, reponse_index) {
    if (!questions.includes(question_name)) {
        questions.push(question_name);
        var items = document.getElementsByName(question_name);
        var checked_index = -1;
        for (i=0; i<items.length; i++) {
            if (items[i].checked) {
                checked_index = i;
                break;
            }
        }
        if (checked_index == -1) {
            // Pas de sélection faite
            console.log("Pas de choix sélectionné");
        }
        else if (checked_index == reponse_index) {
            // Bonne réponse
            console.log("Bonne réponse");
            items[reponse_index].parentNode.style.color = "green";
            score++;
        }
        else {
            // Mauvaise réponse
            items[reponse_index].parentNode.style.color = "green";
            items[reponse_index].parentNode.style.textDecoration = "underline";
            items[checked_index].parentNode.style.color = "orange";
            items[checked_index].parentNode.style.textDecoration = "line-through";
            console.log("Muavaise réponse");
        }
    }
    else {
        // Réponse déjà donnée
        console.log("Question déjà effectuée");
    }
}


function getScore() {
    if (questions.length < NOMBRE_QUESTIONS) {
        console.log("Toutes les questions n'ont pas été validées !");
    }
    else {
        console.log("Le score est de " + score + " points.");
    }
}


Bon, perso, je suis une bouse en javascript, mais ce qui est fait avec la variable score est tellement simple et logique que je ne vois pas en quoi cela te pose souci.
0
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020 > trifou
9 janv. 2020 à 17:24
Marche pas, je sais pas pourquoi. Les boutons ne font juste rien.
0
trifou > Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020
9 janv. 2020 à 18:46
"Marche pas" ne veut rien dire en programmation, si ça ne marche pas, c'est que tu dois avoir une erreur quelque part, donc zieuter la console web du navigateur pour voir ce qui cloche.

Un simple html de test

<!doctype html>
<html lang="fr">
<head>
<meta charset="utf-8">
<title>QCM NSI</title>
<script type="text/javascript" src="scriptqcm.js"></script>
<link rel="stylesheet" href="styleqcm.css">
</head>
<body>
    <h1>Test</h1>
    <ol>
        <li>
            <dl>
                <dt>Plus grand chifrre parmi</dt>
                <dd><input type="radio" name="q1">5</dd>
                <dd><input type="radio" name="q1">3</dd>
                <dd><input type="radio" name="q1">8</dd>
            </dl>
            <input type="button" value="correction" onclick="correction('q1', 2)">
        </li>
        <li>
            <dl>
                <dt>Plus petit chifrre parmi</dt>
                <dd><input type="radio" name="q2">5</dd>
                <dd><input type="radio" name="q2">3</dd>
                <dd><input type="radio" name="q2">8</dd>
            </dl>
            <input type="button" value="correction" onclick="correction('q2', 1)">
        </li>
    </ol>
    <p><input type="button" value="Afficher le score" onclick="getScore()"></p>
</body>
</html>


Fonctionne très bien avec le js que je t'ai posté.
0
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020
10 janv. 2020 à 20:05
Effectivement, autant pour moi :

 const NOMBRE_QUESTIONS = 10;
var score = 0;
var questions = [];
function correction(question_name, reponse_index) {
    if (!questions.includes(question_name)) {
        questions.push(question_name);
        var items = document.getElementsByName(question_name);
        var checked_index = -1;
        for (i=0; i<items.length; i++) {
            if (items[i].checked) {
                checked_index = i;
                break;
            }
        }
        if (checked_index == -1) {
            // Pas de sélection faite
            alert("Pas de choix sélectionné");
        }
        else if (checked_index == reponse_index) {
            // Bonne réponse
            alert("Bonne réponse");
            items[reponse_index].parentNode.style.color = "green";
            score += 3;
        }
        else {
            // Mauvaise réponse
            items[reponse_index].parentNode.style.color = "green";
			items[reponse_index].parentNode.style.textDecoration = "underline";
            items[checked_index].parentNode.style.color = "orange";
            items[checked_index].parentNode.style.textDecoration = "line-through";
            alert("Mauvaise réponse");
			score--;
			
			
        }
    }
    else {
        // Réponse déjà donnée
        alert("Question déjà effectuée");
    }
}


function getScore() {
    if (questions.length < NOMBRE_QUESTIONS) {
        alert("Toutes les questions n'ont pas été validées !");
    }
    else {
        alert("Le score est de " + score + " points.");
    }
}

0
Bonjour,

Pas d'erreur ici.
Remontre ton html, et transforme tes checkbox en radio, cela peut se faire avec ton éditeur de texte en un tour de main avec l'option remplacer dans le menu de l'éditeur
type="checkbox"
par
type="radio"
.
Du moins si tu utilises un éditeur de texte ou ide digne de ce nom.
0
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020 > trifou
11 janv. 2020 à 11:39
Oui j'utilise NotePad++ et c'est déjà fait. En fait le problème est que dès que je coche une seule réponse fausse le résultat devrait être de 29 / 30 mais la ça me met 25/30 ??
0
trifou > Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020
Modifié le 11 janv. 2020 à 12:49
Si neuf réponses correctes et une fausse:

score vaudra alors
9 * 3 + 1 * -1
soit 26 et non 29.

Pour cette raison que ton barème de points est bancal, pourquoi donc enlever 1 point pour une mauvaise réponse ? Alors que ne pas ajouter ou soustraire de points serait plus logique.

Pourquoi alors tu as 25 points au lieu de 26 ? Aucune idée, mais vérifie quand même ce que tu affirmes.
0
Ethios Messages postés 15 Date d'inscription mercredi 8 janvier 2020 Statut Membre Dernière intervention 11 janvier 2020 > trifou
11 janv. 2020 à 15:09
Je sais que c'est pas logique mais c'est ses consignes, au pire pas très grave je vais faire comme vous dites 1 réponse juste = 1 point et réponse fausse pas de points. Merci pour votre aide précieuse
0