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

3 discussions

  • Bonjour, ce plugin est non seulement intéressant, mais aussi très complet. J’avais cependant envie de créer une sorte de jeux suivant : mettre en ligne une ou des dictées - des textes, en fait - avec de mots mal orthographiés (donc des fautes) que l’internaute doit trouver, par exemple en cliquant sur le mot en question. Ce clic déclencherait l’ouverture d’un petit formulaire en pop-up permettant de saisir la bonne orthographe et dont la validation dirait « bravo c’est juste » ou « désolé, mais ce n’est pas ça. Recommencez » ...
    Penses-tu que cela soit possible dans spip 3 ? Cette idée te paraît-elle intéressante ? Je maîtrise pas mal le code spip, html et css, mais pas très bien php. Par contre, je puis faire une espèce de cahier des charges un peu plus précis. Voilà. Merci de tes remarques.
    Marc

    Répondre à ce message

  • 3

    Salut,

    Très bon plugin Spip.
    Le mode jeu inséré dans un article est structurellement léger sans qu’il soit nécessaire de charger inutilement la base de données, donc très intéressant.
    Mais, il ne travaille pas en ajax.
    Cela rend difficile son utilisation sur les sites actuels ou le manque de fluidité est
    mal accepté.

    Si je comprends bien, je ne peux pas choisir l’option jeux dans la bdd (qui marche en ajax), sous peine d’alourdir la base avec des data pour mon cas inutiles : au moins une ligne par jeu et par utilisateur.

    De plus, dans mon cas, la page contient une partie dynamique, dont l’état serait annulé par chaque rechargement de la page, donc le mode jeu inséré est inutilisable (car sans ajax).

    Y a-t-il une solution intermédiaire ?

    Julie

    • La compilation en html du template de jeu mis directement en article cree
      un formulaire , mais il n’est pas CVT.
      Pour travailler en ajax, Spip requiert un formulaire CVT. Donc nativement le plugin ne le permet pas.
      Une solution possible serait de passer ce traitement de template en article en CVT.

    • Ok Michel,

      Merci, je suis toujours intéressée , mais je suis en retard sur un autre projet, et ça risque de durer un moment.
      Pour avancer , je te pm une offre.
      Julie

    Répondre à ce message

  • 3

    Bonjour,
    je pense à une amélioration de l’usage des jeux et surtout une nouvelle manière de récupérer les résultats : ce serait utile en fac ou IUT où tous les élèves ont un email.

    L’élève fait le jeu sans se loguer, répond aux questions et en bas un formulaire avec le nom, téléphone et email à remplir pour recevoir sa note ,ses réponses et si paramétré, les bonnes réponses.

    En même temps, le jeu conserve les réponses associées à l’identifiant / nom/ email/ pour que l’administrateur conserve l’historique et les données.
    On pense à associer un formulaire donc. On voir que sous « Formidable », on peut associer un formulaire aux Jeux : coché.

    Mais après ?
    comment mettre le formulaire dessous le jeu et envoyer à l’élève sa note, ses résultats svp ? Je ne vois pas de doc. merci d’avance.

    • Interessant.
      Mais je n’ai pas trop suivi les evolutions sur la protection des donnees
      en Europe.
      Peut-on demander des infos personnelles comme le telephone, le nom si ca ne se justifie pas par le service offert ?
      De plus, il faut aussi donner , la possiblilte de correction et de
      suppression de ces donnees personnelles aux
      personnes enregistrees .
      Tout ca pour dire que la creation de compte visiteur est obligatoire a priori.
      Heureusement : il y a un plugin « Connexion des l’inscription » qui permet la creation directe de compte.
      Ensuite , les donnees des jeux seront en base.
      Il faut le plugin notifications pour les mails .
      Avec un peu de code ca devrait pouvoir se faire.

    • Bonjour,
      merci de votre réponse Michel,
      au niveau de la question du service offert , on peut imaginer que cela serve :
      -  en éducation : à poster ses réponses (élèves) et obtenir du prof / tuteur une note et une correction
      -  au niveau professionnel/commercial : répondre à des questions qui donnent un poids relatif au client des demandes qu’il fait, sans mettre les prix en public (concurrence) afin d’obtenir un prix définitif s’il veut aller plus loin.
      Donc les coordonnées ne sont dans ce cas pas une option : je comptais les mettre dans un formulaire, rattaché aux réponses du client au « jeux ».
      Ou bien le le tout est fait dans le formulaire ....

      Par contre pour la mise en œuvre, je n’ai pas compris vos explications et je n’ai pas réponse à ma question en plus simple :
      « comment mettre le formulaire dessous le jeu ? » Je ne vois pas de doc."
      merci d’avance !

    • Il y a plusieurs moyens dans Spip a priori, par exemple :

      - Vous pouvez inclure des champs nom /tel/ mail dans le template du jeu meme : les donnees seront alors ecrites dans les tables du plugin jeux.

      - Vous pouvez aussi utiliser directement dans l’article, apres le jeu, le modele

      <formulaire|un_formulaire_existant|>

      (exemple pour un formulaire d’inscription :

      <formulaire|inscription|>)

      - Vous pouvez aussi faire une version perso de article.html
      incluant une balise de formulaire apres le texte de l’article
      (a la maniere des forums)

    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