Des jeux avec des scores

Une fonctionnalité avancée du plugin jeux

Le plugin « Des jeux dans vos articles ! » évolue !

Il est désormais possible d’enregistrer les scores des joueurs !

Attention toutefois, car pour le moment c’est encore en cours de test. Mais cela marche globalement.

Par ailleurs, tout les jeux ne sont pas encore configurés pour enregistrer les résultats. Pour le moment le sont de manière sûre :
-  les mot croisés [1]
-  les QCM
-  les tests à trous

Si vous souhaitez que d’autres jeux puissent enregistrer les résultats, contactez les auteurs du plugin. C’est rapide à faire, mais il faut y songer ;-)

Principe

Pour que les scores d’un joueur soient enregistrés, on a besoin de trois choses :

  1. Le joueur doit être connecté sur le site et identifié en tant qu’administrateur, rédacteur ou visiteur.
  2. Le jeu doit être, non pas inclus directement dans l’article, de la manière décrite dans la documentation principale, mais être créé en tant qu’objet SPIP [2], et intégré au corps de l’article via un modèle.
  3. Le Couteau Suisse doit avoir sa lame « balise #INTRODUCTION » activé afin d’éviter que si la balise #INTRODUCTION est présente dans le squelette, les scores soient affichés en double ...

Les scores

Un score de jeu est composé de trois champs :
-  un premier nombre entier représentant le total des points obtenus par le joueur (champ ’spip_jeux_resultats’ de la table spip_jeux_resultats).
-  un second nombre entier représentant le nombre total des points du jeu (champ ’total’ de la table spip_jeux_resultats).
-  un descriptif plus détaillé pouvant informer sur le déroulement du jeu et les différentes réponses données par le joueur (champ ’resultat_long’ de la table spip_jeux_resultats).

Exemple sur un QCM :

resultat_court resultat_long total
6 Q1:R4:2, Q2:R1:0, Q3:R1:1, Q3:R3:2, T4:terre:1 8

Créer un jeu

Si vous ne comprenez rien à ce charabia, ou si vous voulez voir plus loin, je vous invite à me suivre.

Si vous survolez le menu édition, vous devez avoir ceci :

Cliquez alors sur « Jeux » (logique non ?)

Vous devez alors tomber sur une pages qui ressemble à cela :

Cliquez sur « nouveau jeu », vous devez tomber sur ce formulaire :

Détaillons les champs :
-  « Titre privé » -> Il vous servira à mieux identifier le jeu dans l’espace privé.
-  « Contenu du jeu » -> Ici, vous écrivez votre jeu en respectant la syntaxe décrite dans l’article principal. A noter qu’il n’est pas nécessaire de mettre les balises <jeux> et </jeux>
-  « Enregistrer les résultats ? » -> Comme son titre l’indique, permet de choisir si on enregistre les résultats du jeu.
-  « Résultat unique » -> Depuis la version 1.2 seulement, permet de restreindre à un seul résultat par joueur et par jeu.

Cliquez sur "Valider"

Vous arrivez alors sur la page du jeu. Vous pouvez alors choisir le statut du jeu :
-  en ligne (par défaut)
-  refusé
-  à la poubelle ... attention ! le jeu sera supprimé automatiquement de la base de donnée au bout d’un certain temps...

Insérer le jeu dans un article

Il vous reste alors à insérer le jeu dans un article. Repérez à gauche de la page du jeu son numéro, puis éditez l’article dans lequel vous souhaitez insérer le jeu. Pour insérer, il suffit de d’écrire <jeuNNN> où NNN est le numéro du jeu [3].

Voir les résultats

Maintenant, il s’agit de voir comment gérer les résultats.

Si vous retournez sur la page des jeux, vous devez obtenir une liste des jeux, semblable à celle-ci :

Cliquez sur le résultat du jeu, vous arrivez alors sur quelque chose semblable à cela :

Vous pouvez cliquer sur les titres de colonnes pour choisir le critère de tri.

Par ailleurs, en cliquant sur le nom d’un auteur, vous arrivez sur ses résultats.

Réinitialisation des résultats

Il s’agit là d’une fonction réservée aux administrateurs du site.

On distingue deux choix
-  réinitialiser les résultats d’un jeu/d’un auteur.
-  ne garder que le meilleur résultat par couple auteur/jeu, ce que le plugin appelle « compacter ».

Pour se faire, il faut, une fois que vous êtes sur la page des résultats d’un jeu ou d’un auteur, cliquez à gauche sur le liens « gérer les résultats ». Puis suivez les instructions du formulaire.

Affichage dans l’espace public des jeux et/ou résultats

Deux modèles sont proposés pour afficher les résultats dans l’espace public.

Si vous écrivez dans un article <auteur_resultatsxxx> où xxx est le numéro d’un auteur, vous affichez le résultats de cet auteur. [4]

Si vous écrivez <jeu_resultatsxxx> xxx est le numéro d’un jeu, vous obtiendrez le résultats de ce jeu.

Si votre version de SPIP est au moins supérieure à la 2.00, vous pouvez passer le paramètre « ajax » aux modèles (<auteur_resultatsxxx|ajax> ou <jeu_resultatsxxx|ajax>), ce qui permet de ne recharger que les résultats lorsque l’on clique sur un lien pour changer le critère de tri.

Notez que vous pouvez également vous servir dans un squelette de la balise #MODELE{auteur_resultats}{auteur_resultat=#ID_AUTEUR} dans une boucle AUTEURS pour afficher les résultats de cet auteur. [5]

Page de test

Afin de contrôler vos jeux, le plugin vous offre une page de test : /jeu.html. Si un jeu enregistré en base a pour id XX, alors vous pourrez le crayonner et le tester directement en tapant l’adresse suivante : www.monsite.toto/?page=jeu&id_jeu=XX.

Le plugin Crayon n’est pas du obligatoire pour éditer des jeux enregistrés en base, mais assez pratique !

Configurer le plugin

La page de configuration du plugin est accessible (si le plugin CFG est activé) à l’adresse : ecrire/?exec=cfg&cfg=jeux, Ou en cliquant sur l’un des liens y menant.

Pour le moment, il n’y a qu’un seul réglage : choisir ce que fait le plugin si un auteur a déjà joué à ce jeu.

Il peut :
-  garder le dernier résultat (choix par défaut),
-  garder le meilleur résultat,
-  conserver tous les résultats.

Collaboration avec d’autres plugins

-  Le plugin CFG (optionnel) pour la configuration des résultats et certaines options générales pour les jeux.
-  Le plugin Le Couteau Suisse (optionnel) pour la balise #INTRODUCTION et la gestion des jeux supprimés.
-  Le plugin Corbeille (optionnel) pour la gestion des jeux supprimés.
-  Le plugin Crayon (optionnel) pour éditer des jeux enregistrés en base. Le plugin vous offre une page de test : jeu.html. Si votre jeu a pour id NN, alors vous pourrez le crayonner et le tester directement en tapant l’adresse suivante : www.monsite.toto/?page=jeu&id_jeu=NN.

Liens utiles : Grâce à Olivier Gautier, visitez http://spip.ac-rouen.fr/?article37 afin d’avoir un tutoriel graphique sur : installer le plugin jeux, créer un pendu, créer un QCM ou QRM, créer un texte à trous.

Formulaires CVT

Le commit http://zone.spip.org/trac/spip-zone... introduit la gestion des formulaires CVT (Charger-Vérifier-Traiter) de SPIP afin de permettre à certains jeux d’être facilement corrigés en AJAX.

Le système CVT n’est pas pleinement utilisé car l’enregistrement des scores en base se fait au moment du calcul de la correction du jeu, bien avant l’action Traiter.
L’action Vérifier est aujourd’hui toujours validée, car les jeux ne gèrent pas (encore ?) de champ bloquant.

Voici donc pour rappel, les 3 façons pour gérer/afficher un jeu aujourd’hui dans vos articles :
- les jeux inline entre balises <jeux/> et sans score
- les jeux créés en base (avec score), appelés grâce au modèle <jeuXX>
- les jeux créés en base (avec score), corrigés en AJAX grâce au raccourci <formulaire|jeu|XX>

Notes

[1Le score est égal ici au nombre total de cases justes

[2ce que j’appelle objet SPIP est par exemple une rubrique, un article ... bref un truc ayant un contenu et sur lequel on peut faire des boucles

[3Pour les techniciens, il s’agit bel et bien d’un modèle SPIP.

[4Là aussi, le clic sur un titre de colonne permet de choisir le critère de tri. Il y a pour le moment une limite technique. En effet, le tri par résultat se fait selon le résultat absolu et non pas le résultat relatif au nombre total de points possibles. Du coup, 8/16 apparaitra mieux classé que 3/4.

[5Cela n’est pas propre au plugin, il s’agit de l’une des fonctionnalités de SPIP.

Discussion

29 discussions

  • 7

    Arf, autre petit souci. Je suis sous spip 1.9.2e

    J’ai essayé de faire s’afficher dans la partie publique les résultats des visiteurs identifiés (sur leur page auteur) en utilisant le code fourni dans cette contrib, mais ça m’affiche « aucun résultat », alors que j’ai fait un jeu, que dans la partie privée, mes résultats s’affichent...Dans la partie publique, sur la page du jeu, avec la balise , les résultats s’affichent également (exemple : http://www.collegedevinci.fr/relier-les-noms-grecs-et-francais) et hop, si vous cliquez sur mon nom, vous arriverez à ma page profile, et remarquerez que c’est noté « aucun résultat ». Quelqu’un a rencontré le souci ?

    • Le plugin (en cours de développement, je rappelle) comportait qq bugs importants en effet. Je viens de poster la version 1.6 qui en corrige un certain nombre et modifie un peu la gestion des scores en l’étendant et la clarifiant.

      Toi qui a travaillé avec hot potatoes et qui l’utilise sans doute, n’aurais-tu pas l’idée d’intégrer ces modules au plugin jeux ?

    • Yves Le Houerf

      Le plugin Jeux fait déjà beaucoup de ce que sait faire Java Hot Potatoes :

      Jquiz
      Jquiz permet de réaliser quatre types d’exercices :
      -  QCM permet de créer un questionnaire à choix multiple standard.
      -  Quiz permet de créer un test à réponse courte. L’apprenant doit saisir la réponse au clavier.
      -  Hybride permet de créer un type d’exercice où l’apprenant commencera par une question à réponse courte. Il devra saisir la réponse au clavier. S’il n’y arrive pas directement, la question sera alors transformée en QCM afin de faciliter sa tâche.
      -  Multi-sélection crée un QRM où plusieurs réponses doivent être validées afin que la réponse soit comptée comme correcte.

      Jcloze
      Jcloze permet de créer des textes lacunaires, encore appelés exercices à trous ou tests de closure.

      Jmatch
      Jmatch permet de créer un exercice d’appariement constitué d’images dans une colonne de gauche et le pendant textuel des images dans une colonne à droite mais placé aléatoirement en face de n’importe quelle image. On reconstituera les bons couples image-texte par glisser-déposer ou par sélection dans une liste déroulante.

      Jcross
      Jcross permet de créer des mots-croisés.

      Jmix
      Jmix permet de faire des exercices où l’apprenant doit remettre dans l’ordre de courts segments
      de phrases proposés dans le désordre. Les replacements se font par glisser-déposer.

      Commentaire
      En dehors des exercices avec glisser-déposer, Jeux est plus performant grâce à la mémorisation des résultats qui n’existe pas che HP. Les résultats sont donnés en bas d’exercice et chaque réponse peut posséder une valeur pondérée en pourcentage. Il y a aussi une idée qui peut vous intéresser dans les QCM, c’est le format hybride où une question ouverte avec une mauvaise réponse donnée se transforme en QCM à boutons radio.

      Je crois que les pages HTML générées contiennent le code JavaScript des réponses en clair si on sait visualiser le code source des pages.

      Je vais faire un Jmatch et un Jmix et vous proposer le code.

      Le manuel HP6 est ici en PDF

      Quant à intégrer de nouveaux modules dans Jeux ! C’est trop d’honneur de le proposer à un joyeux bidouilleur. À moins que...

    • Yves Le Houerf

      Une autre possibilité de HP : les questions peuvent être toutes affichées dans la même page HTML ou affichées une par une dans plusieurs pages qui s’appellent après chaque réponse. Une autre option déjà citée dans un précédent mail, c’est le minuteur.

      Je passe à la verion 1.6 et je reviens. YLH

    • Yves Le Houerf

      Bonjour,

      Je suis en 1.6 et le plugin ne sait plus lire la table spip_jeux ou ne sait pas afficher la liste des jeux qu’il a récupéré du contenu de la table. J’ai vérifié avec PMA les deux tables jeux sont pleines.

      Désolé. YLH

    • Quel est exactement le problème ? Je rappelle que pour mettre à jour un plugin, il faut rafraichir la page des plugins (?exec=admin_plugin) et vider les caches avant toute chose.

    • Yves Le Houerf

      Pas de problème, cache pas vraimment vidé. Après une purge ça tourne impec. Désolé d’avoir lancé cette alerte trop vite. Bravo Pat.

      J’ai suivi le dialogue avec Klauss++ à propos de la fenêtre d’édition refermée sur FF3 Mac. Je vais récupérer une nouvelle archive. C’est quoi le 68 ? Un bar nostalgique !

    • Le champagne ? c’est chez moi ;)

    Répondre à ce message

  • 1

    Bonjour,

    « Une question juste pour nous aider à debugguer : pouvez vous regarder avec un phpmyadmin si dans la colonne "resultat_unique" la valeur est bien "oui" (histoire de savoir si ca coince au moment du réglage ou de l’enregistrement) »

    La valeur est bien à OUI et s’affiche comme telle dans la liste des jeux de l’admin de SPIP. Une chose troublante, mais qui n’a peut-être rien à voir, c’est le retour à NON quand on retourne dans "Modifier le jeu". On se demande si c’est un affichage par défaut ou si c’est la récupération de la valeur enregistrée. Pour l’utilisateur qui retourne modifier qlq chose il constate une modif faite à priori et indépendamment de lui.

    Merci de votre intervention.
    YLH

    Répondre à ce message

  • 2

    Bonjour,

    J’ai déjà posté ce message sur la liste User. Ne n’en veuillez pas, s’il vous plait, si ce message « doublone ». J’ai relu les articles, activé, désactivé, réactivé la balise INTRODUCTION. Rien n’y fait.

    « Résultat unique » est une fonction en cours de développement ou est-ce ma config qui est en cause ?

    Merci de vos conseils.

    *****
    J’utilise maintenant régulièrement le plugin Jeux pour faire des exercices QCM sur un intranet d’école.
    SPIP 1.9.2, accès restreint 2 + Jeux v1.3.

    C’est très simple à rédiger et très efficace en ligne. En tant qu’exercice ces tests sont rejouables autant de fois que le veut l’élève (paramètre « Résultat unique » à Non par défaut).

    Je cherche à réaliser un contrôle noté en modifiant le paramètre « Résultat unique » à OUI pour que le jeu ne soit jouable qu’une fois ou que seul le premier résultat soit mémorisé.

    Je n’obtiens rien de tout çà. Le corrigé du contrôle se termine toujours par le lien « Réinitialiser » qui donne accès à la possibilité de rejouer le test. Chaque nouveau résultat écrase le précédent enregistré. Je cherche à obtenir le contraire. J’ai vidé tous les caches possibles et tenté tout ce que je pouvais...

    • j’avoue ne pas trop avoir el temps de tester en cemoment.

      Une question juste pour nous aider à debugguer : pouvez vous regarder avec un phpmyadmin si dans la colonne « resultat_unique » la valeur est bien « oui » (histoire de savoir si ca coince au moment du réglage ou de l’enregistrement)

    • Salut Yves ,

      Je viens de reprendre le plugin et de corriger pas mal de fautes, en effet. J’ai également apporté qq améliorations pour SPIP 2.

      Il y a encore du travail, mais tes futurs tests sont les bienvenus !

      Pat

    Répondre à ce message

  • Une petite question technique, serait-il possible comme dans mon jeu de donner les scores à chaque étape, et non pas seulement en fin de jeu ? :
    http://www.collegedevinci.fr/lire-du-latin-sur-des-pieces ? Le jeu est long, je l’ai donc découpe en étapes, avec la balise ++++ du couteau suisse. Il n’y a que deux ou trois réponses par page, mais si je mets toutes les questions sur la page, ça fait long, et puis comme il y a des petits trucs à lire à chaque fois, je me dis que si on a les réponses en cliquant tout au bout, les élèves ne reviendront pas au début pour lire... Là le souci, c’est que j’ai un peu abusé la console « jeux » de la partie privée, mais de toute manière, ça me compte mon exercice comme 7 ou 8 exercices... et moi j’aimerais un compte provisoire avec une note finale à la fin.... il y a un moyen de faire ça ? Si quelqu’un a une idée, une piste à me donner, je veux bien essayer de chercher, mais vu que je ne suis pas du tout spécialiste du code, je ne promets rien... (d’ailleurs là je suis démunie...)

    Répondre à ce message

  • 1

    J’ai installé ce plugin et tout fonctionne tres bien.

    Mais je vien de me rendre compte que mes redacteurs peuvent voir les jeux dans l’espace prive et donc avoir les reponses aux QCMs.

    Y a t’il possibilité de cacher par un acces restreint ou autres moyens l’icone des jeux ?

    Merci d’avance.

    cordialmeent.

    • Pas que je sache ...

      en effet, il n’y a pas d’auteur attribué aux jeux...

      il faudrait éventuellement mettre la main dans le cambouis du php (ce que je ferais pas) pour
      -  créer une table jeux_auteur et l’interface qui va avec
      -  créer une fonction autoriser_jeu_editer qui renvoi la bonne chose si c’est le bon auteur qui tente d’éditer le jeux et l’applique rau bon endroit (cherherche la doc sur autoriser.php)

      bref, le genre de chose assez compliqué...

      il me semble plus simple de basé sur la confiance ...

    Répondre à ce message

  • 2
    quincailler

    Bonjour à tous,

    Ca marche impeccable, seul hic au tableau, je n’arrive pas à gérer la disposition des résultats.
    En fait lors de la validation du qcm, la colonne de droite du site se retrouve sous les résultats du formulaire...Balise intro activée, et insérée dans l’article, spip 1.9.2d, est ce que quelqu’un aurait une solution ?
    Merci

    Répondre à ce message

  • super fonctionnement, j’ai tester tout les jeux et c’est impeccable sauf le jeu à trous qui ne m’affiche rien ?

    j’ai betement copier l’exemple de l’article dans le formulaire prevu a cet effet et je n’ai pas d’affichage contrairement aux autres jeux.

    Cordialement.

    Répondre à ce message

  • 1

    Bonjour,

    Je suis très intéressé par ce plugin par contre serait-il envisageable, dans la gestion des résultats, de rajouter un critère qui reviendrait à concerver uniquement le premier résultat.
    Cela serait utile dans le cas de jeux concours où les personnes ne peuvent jouer qu’une seule fois.

    Je vous remercie,
    Luc

    • la version 1.2 doit pouvoir désormais le faire ... attention, il est important d’activer la lame du couteau suisse mentionné dans la doc ...

    Répondre à ce message

  • J’imagine que j’ai fait ce qu’il faut mais j’ai
    * Erreur(s) dans le squelette
    o Erreur : filtre « ajoute_id_jeu » non défini, _jeu

    J’ai quand même du oublier quelque chose ?
    une idée ?

    C’est là
    Emile

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom