Le mélange est effectué avec la bibliothèque JavaScript qui s’appelle underscore.js. Cette bibliothèque possède une fonction shuffle qui peut mélanger au hasard les éléments d’un tableau. Pour calculer la permutation inverse, on trie les indices possibles en utilisant comme fonction de tri, la fonction donnée par la permutation [1] :
indices = [0...enonce.length]
solution = _.shuffle indices
indices = _.sortBy indices, (n) -> solution[n]
Voici un exemple d’utilisation, montré pas à pas par des copies d’écran :
Les morceaux de la démonstration sont séparés par le retour à la ligne. C’est donc en allant à la ligne qu’on crée les points de découpe du texte à mélanger. On le tape dans le cadre du haut de la page, comme avec un éditeur de texte basique (Control-Z pour annuler, copier-coller etc) :

Si on oublie de corriger une faute d’orthographe ou une coquille, il reste possible de le faire sur la production finale. Mais dès qu’on est satisfait du corrigé (qui est destiné à disparaître après coup), on clique sur le bouton qui lance le shaker pour faire un cocktail secret :

On voit alors un aperçu du texte mélangé :

Si on n’apprécie pas le goût du cocktail, il suffit de relancer le shaker en recliquant sur le bouton décrit ci-dessus, jusqu’à satisfaction. Sitôt qu’on est satisfait du mélange, on peut fabriquer l’exerciciel. Cela se fait en deux phases :
- récupérer le tableau donnant la solution et le placer dans la partie CoffeeScript du gabarit
- récupérer le texte mélangé, au format html, et le placer dans la liste du gabarit.
La partie CoffeeScript est juste sous le bouton du shaker, et on peut sélectionner tout son contenu avec Control-A avant de la copier :

puis de la coller à la ligne 40 du gabarit (ici sous Geany, n’importe quel éditeur de texte convient surtout s’il numérote les lignes) :

La partie html se trouve en-dessous de la partie CoffeeScript. Là encore, on peut la sélectionner avec Control-A, mais on peut aussi si on le souhaite, modifier une dernière fois son contenu [2] :

Ensuite, une fois copié ce contenu (Control-C), on le colle (Control-V) à la ligne 80 du gabarit :

Il ne reste maintenant plus qu’à fignoler (rajouter une figure si l’exercice porte sur la géométrie). Ici un résumé de ce qui est à démontrer :

Ensuite, l’ex gabarit devenu exerciciel peut être ouvert dans un navigateur internet, et testé ; ici sous Firefox :

Une fois triés les morceaux, la progression affiche 100% ce qui montre que le tri est correct [3] :

Mais dans le cas présent, il y a un défaut à l’exercice : Puisque la démonstration repose sur une disjonction de cas, on devrait pouvoir commuter les deux cas, mais un seul ordre est reconnu comme correct :

Aussi, lorsqu’on veut rédiger une démonstration pour qu’elle n’ait qu’un ordre correct, on doit prendre quelques précautions, comme des mots préfixes du genre « de même », « de surcroît », « soit également » etc. Par contre, des exercices de grammaire peuvent également être fabriqués avec cet outil : Une sorte de Bescherelle sur tablette...
Voici l’outil [4] :
Générateur de démonstrations
Première étape: Écrire le texte de la démonstration ci-dessous, en allant à la ligne après chaque "morceau". Les morceaux seront aléatoirement permutés pour engendrer l'exercice.
Seconde étape: Cliquer sur le bouton ci-dessous, qui permutera le texte (on peut recommencer si on n'est pas satisfait du résultat affiché):
Troisième étape: Recopier le morceau de CoffeeScript ci-dessous et le placer dans le fichier template.html
ci-joint, à la ligne 40:
Quatrième étape: Recopier le morceau de html ci-dessous et le placer dans le fichier template.html
à la ligne 80.
Cinquième étape: Changer le nom du fichier template.html
en lui donnant un nom adapté au contexte de l'exercice (par exemple démonstrationParallèles.html
) puis le sauvegarder.
Fini !
Voici quelques exemples de ce qu’on obtient avec cet outil (les figures ont été faites avec des macros CaRMetal, qui sont proposées au téléchargement en bas de cette page) ; les fichiers html peuvent être ouverts dans un autre onglet pour les tester :
- L’exercice d’arithmétique proposé dans le pas-à-pas ci-dessus : Montrer que n est pair si et seulement si n² est pair :
- La démonstration du théorème de la droite des milieux :
- La démonstration de la concourance des médiatrices du triangle :
- La démonstration de la concourance des médianes du triangle :
- La démonstration de la concourance des bissectrices du triangle :
- Un exercice d’analyse niveau terminale) :
Commentaires