Salut chers Hackademiciens,
J'étais entrain de travailler sur un petit projet web, qui consistait à faire un QCM Informatique (Programmation, Hacking, Réseaux, Informatique Générale, ...) en JavaScript.
Alors lors de la génération de questions, j'ai voulu que les questions s'affichent d'une façon aléatoire et pour cela j'ai utilisé la classe "Math" de JavaScript et sa méthode "Random" et tout a bien fonctionné, mais je me suis rendu compte que cette façon de le faire pouvait revenir sur une question plusieurs fois et ce qui est embettant pour la personne qui joue (Imagine qu'on te pose une question plusieurs fois dans une partie de jeux ) du coup j'ai commencé a reflechir pour pouvoir trouver un moyen pour éviter cette répétition là mais en gardant l'aléatoire.
Et donc en refléchissant j'ai écrit un algorithme qui m'aide à faire cela
Voici le principe :
- Je crée un tableau contenant les éléments a trier (Ces élèments constituent en elles même les questions du QCM)
- Puis je commence à trier ce tableau d'une façon aléatoire
- Puis je crée un autre tableau qui va commencer à prendre l'élèment (i) traité et le stocker
- Et puis à la fin c'est ce tableau que j'affiche!
Du coup mes questions sont en aléatoire et on ne revient pas sur une question!
Voici le code de cet algorithme que j'ai implémenté en JavaScript (fichier code.js) :
Pour tester ceci, créer juste un fichier index.html auquel vous incluez le fichier code.js
PS : C'est juste un algorithme, donc vous pouvez le modifier comme vous voulez et le tester avec les questions à l'interieur du tableau et enlever le alert().
Je suis ouvert aux critiques
J'étais entrain de travailler sur un petit projet web, qui consistait à faire un QCM Informatique (Programmation, Hacking, Réseaux, Informatique Générale, ...) en JavaScript.
Alors lors de la génération de questions, j'ai voulu que les questions s'affichent d'une façon aléatoire et pour cela j'ai utilisé la classe "Math" de JavaScript et sa méthode "Random" et tout a bien fonctionné, mais je me suis rendu compte que cette façon de le faire pouvait revenir sur une question plusieurs fois et ce qui est embettant pour la personne qui joue (Imagine qu'on te pose une question plusieurs fois dans une partie de jeux ) du coup j'ai commencé a reflechir pour pouvoir trouver un moyen pour éviter cette répétition là mais en gardant l'aléatoire.
Et donc en refléchissant j'ai écrit un algorithme qui m'aide à faire cela
Voici le principe :
- Je crée un tableau contenant les éléments a trier (Ces élèments constituent en elles même les questions du QCM)
- Puis je commence à trier ce tableau d'une façon aléatoire
- Puis je crée un autre tableau qui va commencer à prendre l'élèment (i) traité et le stocker
- Et puis à la fin c'est ce tableau que j'affiche!
Du coup mes questions sont en aléatoire et on ne revient pas sur une question!
Voici le code de cet algorithme que j'ai implémenté en JavaScript (fichier code.js) :
Code:
function randomWithoutRep() { //Le tableau contenant les éléments à trier var tab = [18, 24, 3, 14, 53, 26]; var i = 0; var taille = tab.length; //Le tableau qui va commencer a stocker les éléments trier var tab1 = []; while(i < taille) { var index = taille-i-1; var aleatoire = parseInt(Math.random() * index); var temp = tab[aleatoire]; tab[aleatoire] = tab[index]; tab[index] = temp; var element = tab.pop(); tab1.push(element); alert(tab1); i++; } } randomWithoutRep();
PS : C'est juste un algorithme, donc vous pouvez le modifier comme vous voulez et le tester avec les questions à l'interieur du tableau et enlever le alert().
Je suis ouvert aux critiques
Commentaire