Des jeux dans vos articles !

ou comment apporter une touche ludique et éducative à vos sites...

Le plugin « Jeux » permet d’insérer dans vos articles des jeux ou des exercices de toute sorte.

Le plugin « Jeux » permet d’insérer dans vos articles des jeux ou des exercices de toute sorte.

*** Généralités sur le plugin « Jeux » ***

-  Auteurs :
Patrice VANNEUFVILLE
Maïeul ROUQUETTE (gestion des scores)

-  Point de départ :
Le 2 décembre 2006

-  Compatibilité :
Toutes version de SPIP v3.0.x ou v2.x.x
Pour Spip 1.9, voir ici

-  Téléchargements disponibles sur la Spip-Zone :
• « Jeux pour SPIP v3.0 mini
• « Jeux pour SPIP v2.0 mini »
• « Jeux pour SPIP v1.92 maxi ».

Mise en place du plugin :
http://www.spip.net/fr_article3396.html

-  Langues :
Pour l’instant, français et un peu d’anglais ou d’italien. Vos traductions sont les bienvenues !
La version pour SPIP v3 est multilingue. Pour les traductions c’est ici : http://www.spip.net/rubrique4.html.

Description : Ce plugin permet de générer de multiples jeux ou exercices à l’intérieur d’un article SPIP (qcm, mots croisés, pendu, devinettes, ...). Il parse le code des jeux tapé dans SPIP, stocke les divers éléments caractéristiques et retourne le code HTML mis en forme.

Dépendances :

Les styles CSS et les fonctions JavaScript du plugin sont insérés grâce à la balise #INSERT_HEAD qui doit absolument être présente (en un seul exemplaire) dans le header de vos squelettes (entre les balises <head> et </head> des fichiers HTML). Si vous ne trouvez pas cette balise dans vos codes et que les jeux n’ont pas l’apparence voulue, le plugin "Le Couteau Suisse« permet d’insérer automatiquement cette balise sans manipulation de votre part grâce à l’outil »Balise #INSERT_HEAD".

Surcharges :

Vous pouvez modifier l’apparence des jeux prévue par défaut en surchargeant le fichier jeux.CSS.html directement dans votre squelette. Commencez par recopier ce fichier à la racine de votre squelette, puis modifiez les différents styles en fonction de vos préférences.

De même, pour un jeu donné, vous pouvez reproduire cette surcharge avec les fichiers CSS présents dans le dossier mesplugins/jeux/styles/ à recopier/modifier dans le dossier messquelettes/styles/. A l’heure actuelle, quatre jeux possèdent un fichier de styles propre : qcm, pendu, mots croisés et sudoku.

Ce mécanisme de surcharge évite de toucher aux fichiers originaux que vous pourrez mettre à jour sans soucis à l’avenir.

L’affichage du score d’un jeu est surchargeable grâce à l’utilisation d’un fonds. Le fichier à recopier/modifier est : fonds/jeu_score.html.

L’affichage d’un bouton ’Corriger’ ou ’Recommencer’ est également surchargeable (dès la version 2.2.0 du plugin). Les boutons sont ici calculés sur la base d’un fond HTML :
fonds/bouton_{$item}.html. Les fonds livrés nativement dans le plugin sont actuellement :
-  Pour la correction : bouton_corriger.html
-  Pour la réinitialisation du jeu : bouton_recommencer.html, bouton_reinitialiser.html, bouton_rejouer.html

Syntaxe dans l’article :

Dans le texte de l’article, le code des jeux doit se trouver entre les balises « <jeux> » et « </jeux> ». Ce code est lui-même composé de séparateurs (par ex. : [titre]) placés entre les paragraphes de code.
Evitez de mélanger les séparateurs spécifiques appartenant à des jeux différents dans le code d’un jeu unique.
Les paragraphes de code peuvent parfois contenir des raccourcis typographiques.

Un exemple simple :

<jeux>
	[titre]
	La devinette du jour
	[devinette]
	Comment appelle-t-on un patron de la nouvelle économie ?
	[reponse]
	Un e-responsable
</jeux>

Séparateurs spéciaux :

-  [titre] : utile pour la plupart des jeux
-  [texte] : permet d’insérer un contenu placé tel quel dans le résultat du jeu, par exemple une image ou une séparation mieux marquée entre deux blagues ou deux questions d’un qcm...
-  [copyright] : permet d’insérer une mention de Copyright, configurable par CSS.
-  [config] : certains jeux peuvent avoir besoin de paramètres de configuration (affichage, difficulté, indices, etc...). Ce séparateur est suivi de lignes sous la forme : parametre = valeur ou Paramètre = valeur (car le plugin est insensible aux accents et aux majuscules).
-  [score] : affichage des commentaires de scores. Reportez-vous au paragraphe dédié [ci-dessous.

Attention : afin d’éviter les mauvaises surprises de présentation (sommaires, rubriques, backends, ...) ou les solutions de vos jeux qui apparaissent dans les résumés d’articles, pensez bien :
-  soit à placer une introduction dans votre article entre les balises <intro> et </intro>
-  soit à remplir le descriptif de l’article.
-  soit activer dans le plugin Le Couteau Suisse la lame « Balise #INTRODUCTION ».

Petite note aux usagers de FCKEditor ; ne pas oublier d’ajouter la ligne suivante dans fckconfig.js :

FCKConfig.ProtectedSource.Add(/<jeux[\s\S]*?\/jeux>/gi);

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

Modules actuels :


-  Insérer un QCM (ou un quiz...)
-  Insérer une grille de mots-croisés
-  Insérer une grille de sudoku
-  Insérer un exercice à trous
-  Insérer un jeu de points à relier
-  Insérer une poésie
-  Insérer une citation ou une blague
-  Insérer une devinette ou une charade
-  Insérer un diagramme de positions d’échecs
-  Insérer un jeu de pendu
-  Insérer un jeu multiple (grappe de jeux)
-  #
-  Forum

Formulaires Ajax :

Si votre version du plugin est supérieure à la 1.1 et que celle de votre SPIP est supérieure à la 2.0, alors les jeux peuvent fonctionner en Ajax. C’est à dire qu’il n’y a plus besoin de recharger toute la page lorsqu’on veut voir la correction.

Pour appeler (sous SPIP >=2.1 et plugin Jeux mis à jour) un jeu en utilisant l’API CVT de SPIP, il faut d’abord créer le jeu en partie privée, puis utilier dans vos articles le raccourci suivant : <formulaire|jeu|XX> (XX est l’id du jeu).

Collaboration avec d’autres plugins :

-  Le plugin CFG (optionnel) pour la configuration des résultats
-  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 XX, alors vous pourrez le crayonner et le tester directement en tapant l’adresse suivante : www.monsite.toto/?page=jeu&id_jeu=XX.

Remerciements :

-  Mathieu GIANNECCHINI : à l’origine des QCM (questions à choix multiples)
-  Maïeul ROUQUETTE : à l’origine des mots-croisés
-  François SCHREUER : à l’origine des diagrammes d’échecs
-  Peut-être vous ? N’hésitez pas à proposer vos projets.

Il reste encore à faire :

-  Ajouter de nouveaux jeux
-  Ajouter de nouvelles traductions (sous SPIP>=3.0, utilisez l’interface de traduction suivante : http://www.spip.net/fr_rubrique4.html).

Commentaires de scores :

Afin d’afficher un commentaire en fonction du score obtenu, utilisez le séparateur optionnel [score]. Vous devez ici définir des catégories de résultats, soit en nombres de points, soit en pourcentages, selon la syntaxe suivante : « XX% : », « XXpt : » ou « XXpts : » (où XX est un nombre au début d’un paragraphe). En gros, une ligne commençant par « XXpts : » signifie : voici le commentaire affiché si vous atteignez les XX points. Un peu comme un seuil de déclenchement.

Voici un premier exemple sur un jeu de 6 points, avec 5 catégories de résultats (0 point, 1 ou 2 points, 3 ou 4 points, 5 points et 6 points) :

[score]
0pt: Vous devez vraiment réviser. Recommencez !
1pt: Vous n'avez pas la moyenne. Recommencez !
3pts: Votre score peut encore être amélioré. Recommencez !
5pts: Presqu'un sans faute. Félicitations !
6pts: Vous êtes vraiment un as. Félicitations !

Voici comment sont choisis les commentaires ci-dessus en fonction du score :

Score obtenu : 0 pt 1 ou 2 pts 3 ou 4 pts 5 pts 6 pts
Commentaire : "0pt:«    »1pt:«    »3pts:«    »5pts:«   »6pts:"

Voici un second exemple en pourcentage avec 4 catégories :

[score]
0%: Il est urgent de réviser. Recommencez !
30%: Vous n'avez pas la moyenne... Recommencez !
50%: Ce n'est pas encore parfait... Recommencez !
100%: Vous êtes vraiment un as. Félicitations !

Voici comment sont choisis les commentaires ci-dessus en fonction du score :

Score obtenu : 0% à 29.99% 30% à 49.99% 50% à 99.99% 100%
Commentaire :  "0%:«    »30%:«    »50%:«   »100%:"

Enregistrements des scores / jeux en base de donnée :

Le plugin permet aussi d’enregistrer en base les scores des joueurs. Voir ici pour plus d’informations.


*** Insérer un QCM (ou un quiz...) ***

-  module : qcm.php
-  séparateurs obligatoires : [qcm] (ou [quiz]), [qrm]
-  séparateurs optionnels : [titre], [texte], [copyright], [score]
-  plusieurs [qcm] ou [qrm] entre entre <jeux> et </jeux> : oui
-  paramètres de configuration par défaut :

trou=auto // taille du trou affiche en cas de proposition unique
Une_par_une = non // affiche les questions une par une
Corrections = oui // corrige chaque réponse (juste ou fausse) et affiche les précisions éventuelles
Solution = non // donne la(les) bonne(s) réponse(s) lors de la correction
Points = oui // affiche éventuellement les points dans les questions
Max_radios = 5 // nombre maximal de boutons radios affiches avant le choix d'une liste deroulante
Colonnes = 1 // nombre de boutons (type radio ou a cocher) par ligne
Bouton_corriger = corriger // fond utilise pour le bouton 'Corriger'
Bouton_refaire = reinitialiser // fond utilise pour le bouton 'Reset'

-  [qcm] est l’abréviation de « questions à choix multiple, mais réponse unique ». Moins de 5 propositions de réponse sont présentées sous forme de bouton radio et sous forme d’une liste au-delà. L’utilisateur ne peut donc choisir qu’une seule réponse à chaque question, même si plusieurs propositions peuvent être justes.
-  [qrm] est l’abréviation de « questions à réponses multiples ». Les propositions sont présentées sous forme de cases à cocher. L’utilisateur peut donc choisir de cocher plusieurs réponses pour une même question. Par défaut, les réponses justes rapportent 1 point et les réponses fausses -1 point. Le score final ajoute les points de chaque proposition.
-  [quiz] est un équivalent à [qcm].

Dans le paragraphe précédé par [qcm] ou [qrm], la syntaxe est la suivante :

Q Intitulé de la question
P1 Texte de la proposition 1
P2 Texte de la proposition 2
...
Pi Texte de la proposition i
Rj (indique que la bonne réponse est la proposition j)

Donc, si la bonne réponse est la proposition 2 on indiquera « R2 ».

Attention, les majuscules sont requises pour : « Q, Pi et Ri ».

Il est possible de préciser les points attribués à chaque réponse :

P1.-2 Texte de la proposition 1 à -2 points
P2.4 Texte de la proposition 2 à 4 points
R2

Veuillez à ce que la bonne réponse attribue toujours le nombre maximal de points.

S’il faut expliquer le choix (bon ou mauvais) de l’utilisateur lors de la correction, on peut ajouter des commentaires :

P1 Proposition 1|Et un commentaire 1 !
P2 Proposition 2|Et un commentaire 2 !

Si plusieurs bonnes réponses sont possibles, il suffit de séparer les Ri par un espace :

R1 R3 R4

En fonction du nombre de questions posées, il faut prévoir plusieurs paragraphes précédés des séparateurs « [qcm] » ou « [qrm] ».

Un exemple :

<jeux>
	[titre]
	Un titre pour le QCM !

	[qcm]
	Q Une question bla bla
	P1 Une proposition 1
	P2 Une proposition 2
	P3 Une proposition 3 (la bonne réponse)
	R3 (la réponse 3 est la bonne !)

	[qcm]
	Q Une question encore
	P1.2 Une proposition à 2 points (la bonne réponse)
	P2 Une proposition 2|Lisez bien la question...
	R1

	[qrm]
	Q Une question pour finir
	P1 Une proposition 1|En effet 1 !
	P2 Une proposition 2|En effet 2 !
	P3 Une proposition 3|Lisez bien la question...
	R1 R2
</jeux>

Cas particulier : si l’utilisateur doit lui-même taper la réponse, il suffit d’une question « Q » et d’une proposition « P ». Exemple :

<jeux>
	[qcm]
	Q Citez une planète du système solaire :
	P Mercure Vénus Terre la+Terre Mars Jupiter Saturne Uranus Neptune
</jeux>

La liste des mots valides à placer après « P » peut accepter les séparateurs usuels : retours à la ligne, tabulations, espaces, virgules, points-virgules ou points.
Pour en savoir davantage sur la syntaxe des listes de mots, lisez le paragraphe « Insérer un exercice à trous » ci-dessous.
Ici, la gestion des points et des précisions est toujours possible :

P.4 Mercure Vénus Terre la+Terre Mars Jupiter Saturne Uranus Neptune|Saviez-vous que Pluton n'est plus une planète ?

Un QCM en démo : http://www.ensemble-claudio-monteve...


*** Insérer un exercice à trous ***

-  module : trous.php
-  séparateurs obligatoires : [texte] & [trou]
-  séparateurs optionnels : [titre], [copyright], [config], [score]
-  plusieurs [trou] entre <jeux> et </jeux> : oui
-  paramètres de configuration par défaut :

taille=auto	// taille des trous
indices=oui	// afficher les indices ?
Couleurs = oui // appliquer des couleurs sur les corrections ?
Solution = non // donne la(les) bonne(s) réponse(s) lors de la correction
Bouton_corriger = corriger // fond utilise pour le bouton 'Corriger'
Bouton_refaire = recommencer // fond utilise pour le bouton 'Reset'

Un exemple :

<jeux>
	[texte]
	Ceci est un exemple de closure (exercice à trous).
	L'utilisateur doit entrer ses [trou]réponses[texte] dans les espaces vides.
	Pour chaque mot manquant, plusieurs réponses correctes 
	peuvent être acceptées. Par exemple, ce  
	[trou]
	trou, vide, blanc
	[texte]
	autorise les réponses "trou", "vide" ou "blanc".
	[config]
	Indices = oui
	Solution = oui
</jeux>

Avec la correction et les couleurs :

Liste des mots :

La liste des mots à placer après [trou] peut accepter les séparateurs usuels : retours à la ligne, tabulations, espaces, virgules, points-virgules ou points.

-  Pour une expression comprenant des espaces, utiliser les guillemets ou le signe +
Par exemple : "afin de" est équivalent à : afin+de
Les minuscules ou majuscules peuvent être utilisées indifféremment pour les réponses ou les propositions.
-  Pour une expression sensible à la casse, ajouter « /M » en fin d’expression :
Par exemple : "la France/M" (ou : la+France/M)
-  Pour une expression régulière (RegExp), utiliser les guillemets et les virgules comme séparateur :
Par exemple : ",stylo(graphe)?,"
-  A propos de la casse, voici quelques expressions équivalentes :
"la France/M", la+France/M, ",la France,"
ou, sans casse : "la France", la+France, la+france, ",la france,i"
-  Pour un affichage lisible des indices, veillez à ce que la première expression ne soit pas une expression régulière...

Autre exemple :

<jeux>
{{Tape les mots ou les expressions suivantes:}}

- élève : [trou]élève[texte]
- Noël : [trou]Noël/M[texte]
- Elle arrive à l'école. : [trou]Elle+arrive+à+l'école./M[texte]
- Où es-tu ? : [trou]Où+es+tu+?/M[texte]
- Je suis là ! : [trou]Je+suis+là+!/M[texte]
- (3x10)-4+2=28 : [trou]"(3x10)-4+2=28"[texte]
- <html>http://ecole-ybarau</html> : [trou]"<html>http://ecole-ybarau</html>"[texte]
- <html>mon.adresse@barau.fr</html> : [trou]"<html>mon.adresse@barau.fr</html>"

[config]
        Indices = non
        Solution = oui
</jeux>

*** Insérer un jeu de Points à relier ***

-  modules : relier.php, relier.js et relier.css
-  séparateur obligatoire : [gauche]
-  séparateurs optionnels : [droite] [solution] [config] [texte] [titre] [copyright]
-  paramètres de configuration par défaut :

Couleur lignes = rouge		// couleur lors du jeu
Couleur erreurs = noir  // couleur lors de la correction
Espace vertical = 40  // espace vertical entre les points (en pixels)
Espace horizontal = 140  // espace horizontal entre les points (en pixels)
Marge horizontale = 30  // marge droite et gauche (en pixels)
Transparence = non  // couleur de transparence des images
Recadre auto = non  // recadrage automatique des images
Compteur = non  // Affichage d'un compteur de secondes
Aléatoire = non  // mélange des colonnes de droite et de gauche
Tout relier = oui  // faut-il relier tous les points pour la bonne réponse ?

Exemple visuel :

Dont voici le code :

<jeux>
[config]
	Aléatoire = oui
	Compteur = oui
[titre]
	Traductions Français/Allemand
[gauche]
	la voiture
	l'ordinateur
	l'horloge
	l'école
	le vélo
	les devoirs
	les amis
	la mer
	les vacances
	la casquette
[droite]
	die Uhr
	das Fahrrad
	das Meer
	der Computer
	die Schule
	die Hausaufgaben
	die Ferien
	die Freunde
	die Mütze
	das Auto
[solution]
	10, 4, 1, 5, 2, 6, 8, 3, 7, 9
</jeux>

Comme vous pouvez le constater, la syntaxe est très simple :

  • Le séparateur [gauche] précède la liste des éléments de la colonne de gauche (un élément par ligne)
  • Le séparateur [droite] précède la liste des éléments de la colonne de gauche (un élément par ligne)
  • Le séparateur [solution] précède la solution (liste de nombres séparés par des virgules).

Veillez noter que le retour à la ligne manuel SPIP (« _ » en début de ligne) est possible à l’intérieur d’un libellé d’élément. Par exemple la liste suivante contient 3 éléments à placer dans la colonne de droite :

[droite]
{{C'est un point d'orgue}}
{{Il augmente la durée de la
_ note placée sous ce signe}}
{{On joue plus fort la note 
_ placée sous ce signe}}

La solution a trois syntaxes possibles :

  1. Syntaxe exhaustive :
    [solution] 1=3, 4=2, 3=2, 2=5, 5=4
    Il faut lire cette ligne comme ceci : le 1er élément de gauche doit être relié au 3e élément de droite, le 4e élément de gauche doit être relié au 2e élément de droite, etc.
     
  2. Syntaxe simplifiée :
    [solution] 1=5=2=3, 2=4=6
    équivalente à :
    [solution] 1=5, 1=2, 1=3, 2=4, 2=6
     
  3. Syntaxe très simplifiée :
    [solution] 5, 2, 3, 4, 1
    équivalente à :
    [solution] 1=5, 2=2, 3=3, 4=4, 5=1

Si la solution n’est pas spécifiée (séparateur [solution] absent), alors le plugin considère que le 1er élément de la colonne de gauche doit être relié au 1er élément de la colonne de droite, et idem pour tous les autres éléments. Exemple par défaut d’un jeu qui aurait 5 éléments dans chaque colonne, et dont la solution ne serait pas spécifiée :
[solution] 1, 2, 3, 4, 5

L’option « tout relier » :

Cette option permet d’autoriser des points non reliés, comme dans l’exemple suivant, où le joueur doit trouver exactement les 3 bonnes réponses :

Dont le code source est :

<jeux>
[titre]
	Jeu 1 : Théorie: reconnaissance de symboles
[texte]
	<vignette1139|right|largeur=60|haut=-8em>
	Sauras-tu retrouver la (ou les) définition(s), ainsi que le nom de ce symbole ?

	{{Relie les points !}}
[gauche]
	<image1349>
[droite]
	{{C'est un point d'orgue}}
	{{C'est un point d'orme}}
	{{C'est un point d'arc}}
	{{Suspendre la pulsation}}
	{{Augmenter la durée de la
_ note placée sous ce signe}}
	{{Jouer plus fort la note 
_ placée sous ce signe}}
	{{Jouer moins fort la note
_ placée sous ce signe}}

[solution]
	1=1=4=5
[config]
	Espace vertical = 54
	Espace horizontal = 100
	Compteur = non
	Aléatoire = oui
	Transparence = blanc
	Recadre auto = 80%
	Tout relier = non
</jeux>

Un cas particulier : une seule image !

Le plugin peut créer un jeu de points à relier sur la base d’une seule image fixe préparée à l’avance. Seuls les points sont placés automatiquement à l’affichage du jeu.

Dans ce cas, le séparateur [droite] n’est pas utilisé, et le séparateur [gauche] est utilisé de cette façon :

Syntaxe générale :
imageNNNN (nbPtsG, nbPtsD) (offsetX%, offsetY%) (margeG%, margeD%)

Exemple : [gauche] image1341 (7, 7) (10%, 15%) (7.5%, 7.5%)
     ou : [gauche] image1341  7, 7, 10%, 15%, 7%, 7%
     ou : [gauche] image1341  7  7  10%  15%  7%  7%

Significations :
-  NNNN : identifiant du document SPIP utilisé (une image dans ce cas !)
-  nbPtsG : nombre de points à relier qu’il faut créer à gauche
-  nbPtsD  : nombre de points à relier qu’il faut créer à droite
-  offsetX% : pourcentage de distance horizontale entre les deux colonnes de points
-  offsetY% : pourcentage de distance verticale entre les points
-  margeG% : pourcentage de distance entre le bord gauche et la colonne de points de gauche
-  margeD% : pourcentage de distance entre le bord haut et le premier point du haut

À noter :
-  Les 6 nombres figurant après l’identifiant de l’image sont obligatoires et ne peuvent être mélangés.
-  Le pourcentage (« % ») est obligatoire pour les 4 derniers nombres
-  Les caractères non numériques qui séparent les 6 nombres obligatoires sont au choix.
-  L’image étant figée, l’option « Aléatoire » ne doit surtout pas être utilisée.

Voici un exemple de code :

<jeux>
[titre]
Jeu 2 : Pierre et le loup – Sergueï Prokofiev

[texte]
{{Relie le personnage à l’instrument qui le représente dans l’œuvre !}}

[gauche]
image2089    7  7     41%  13.9%     27%  9.5%

[solution]
6, 4, 5, 7, 1, 2, 3

[config]
Transparence = blanc
</jeux>

Et voici l’image d’origine (à gauche) qui sert de support au jeu (à droite) :


*** Insérer une poésie ***

-  module : textes.php
-  séparateurs obligatoires : [poesie]
-  séparateurs optionnels : [titre], [auteur], [recueil]
-  plusieurs [poesie] entre <jeux> et </jeux> : non
-  paramètres de configuration par défaut : aucun

Un exemple :

<jeux>
	[titre]
	Messieurs les petits oiseaux
	[poesie]
	Messieurs les petits oiseaux,
	On vide ici les assiettes ;
	(...)
	Venez donc manger et boire,
	Messieurs les petits oiseaux.
	[auteur]
	Victor HUGO
	[recueil]
	L'art d'être grand père, 1877
</jeux>

*** Insérer une citation ou une blague ***

-  module : textes.php
-  séparateurs obligatoires : [citation] ou [blague]
-  séparateurs optionnels : [titre], [auteur] ou [recueil]
-  plusieurs [citation] ou [blague] entre <jeux> et </jeux> : oui
-  paramètres de configuration par défaut : aucun

Un exemple :

<jeux>
	[citation]
	L'amour est aveugle, il faut donc toucher.
	[auteur]
	Proverbe brésilien
</jeux>

*** Insérer une devinette ou une charade ***

-  module : devinettes.php
-  séparateurs obligatoires : [devinette] ou [charade]
-  séparateurs optionnels : [reponse], [titre], [texte], [config]
-  plusieurs [devinette] ou [charade] entre <jeux> et </jeux> : oui
-  paramètres de configuration par défaut :

reponse = oui	// afficher la réponse ?
envers = oui // retourner la réponse ?
taille = 10	// taille de la police utilisée

Deux exemples :

<jeux>
	[devinette]
	Comment appelle t-on un patron de la nouvelle économie ?
	[reponse]
	Un e-responsable
	[devinette]
	Quel est le point commun entre un contrôleur des impôts et un spermatozoïde ?
	[reponse]
	Tous les 2 ont 1 chance sur 3 millions de devenir un jour un être humain.
	[config]
	Réponse = oui
</jeux>

<jeux>
	[titre]
	Pour les enfants...
	[charade]
	{{Mon premier}} se dirige quelque part.
	{{Mon deuxième}} est la moitié d'un cheveux.
	{{Mon tout}} vit à la ferme.
	[reponse]
	La vache
</jeux>
Une devinette
Une devinette

Note : la Librairie GD (graphique dynamique) est obligatoire sur votre serveur pour obtenir des réponses affichées à l’envers. Une image renversée est en effet créée, à condition que la ligne ’reponse = oui’ a été placée après le séparateur [config]


*** Insérer une simple saisie d’informations ***

Ce jeu, surtout utile en mode multi-jeu, permet de collecter des informations qui ne nécessitent pas de correction, comme un pseudo par exemple, ou un message personnalisé.

-  module : saisies.php
-  séparateurs obligatoires : [texte] & [saisie]
-  séparateurs optionnels : [titre], [copyright], [config]
-  plusieurs [saisie] entre <jeux> et </jeux> : oui
-  paramètres de configuration par défaut :

bouton_corriger=valider // fond utilisé pour le bouton 'Corriger'
bouton_refaire=reinitialiser // fond utilisé pour le bouton 'Reset'

Un exemple :

<jeux>
	[label]
	prenom Quel est ton prenom ?
	[saisie]
	prenom text size=48
	[texte]
	Je suis :
	[saisie]
	genre checkbox
	M = Un garcon
	F = Une fille
	[label]
	preference Tu préfères :
	[saisie]
	preference select
	bonbons = Les bonbons
	gateaux = Les gâteaux
	[texte]
	Ton message :
	[saisie]
	message textarea cols=40 rows=10
	value = Ligne 1
Ligne 2
</jeux>

Syntaxe à utiliser après [label] (tous les paramètres sont optionnels) :
        (nom) (votre texte)
- nom par défaut : saisie

Syntaxe à utiliser après [saisie] (tous les paramètres sont optionnels) :

	(nom) (type) (autres paramètres de la balise)
	(valeur 1 = libelle 1, cas d'un type 'select', 'radio' ou 'checkbox')
	(valeur 2 = libelle 2, cas d'un type 'select', 'radio' ou 'checkbox')
	...
	(value = Votre texte par défaut, pour certains types de saisies)


- nom par défaut : saisie
- type par défaut : text

Le nom :
un mot sans espace compose de lettres/chiffres/ :._-

Les types reconnus sont les types HTML :
button, checkbox, color, date, datetime, datetime-local, email, file, hidden, image, month, number, password, radio, range, search, select, tel, text, textarea, time, url, week
- types non reconnus : submit, reset
- type par défaut : text

Les autres paramètres :
permet de compléter la balise HTML <input> ( <select> ou <textarea> le cas échéant)
exemple 1 : cols=40 rows=10
exemple 2 : size=48


*** Insérer un diagramme de positions d’échecs ***

Les caractéristiques de ce jeu ont été placées ici : Insérer un diagramme de positions d’échecs.

Échiquier interactif en JAVA : Afficher des parties d’échecs avec ChessViewerDeluxe.


*** Insérer un jeu de Pendu ***

-  module : pendu.php, pendu.js et pendu.CSS
-  séparateurs obligatoires : [pendu]
-  séparateurs optionnels : [titre], [texte], [copyright], [config]
-  plusieurs [pendus] entre <jeux> et </jeux> : non
-  paramètres de configuration par défaut :

pendu=1	// Dessin du pendu en noir et blanc
regle=non	// Afficher la règle du jeu ?
indices=non // Afficher les premières et dernières lettres?
alphabet=latin1 // Utiliser un clavier latin simple

Le pendu est essentiellement un jeu écrit en JavaScript. Il faut donc que votre navigateur et vos logiciels de protection de l’ordinateur l’autorisent.

L’implémentation de ce jeu est très simple. Il suffit de choisir éventuellement le type de pendu à afficher (voir les dossiers disponibles sous la forme : /jeux/img/penduX) grâce à la configuration pendu=X, puis de renseigner la liste de mots située après la balise [pendu]. Le mot à deviner sera alors choisi au hasard à chaque partie de pendu.

Note : La liste des mots à placer après [pendu] peut accepter les séparateurs usuels : retours à la ligne, tabulations, espaces, virgules, points-virgules ou points.
Les minuscules ou majuscules peuvent être utilisées indifféremment.
N’utilisez aucun accent car le clavier du pendu ne les propose pas au joueur.

Exemple :

<jeux>
[titre]
Thème : le Jazz...
[pendu]
morton oliver armstrong ellington whiteman henderson nichols
dorsey beiderbecke teagarden freeman kaminsky teschemacher 
davis goodman wilson hampton crosby parker gillespie powell monk
clarke johnson mulligan evans hawkins basie coltrane coleman
[config]
Pendu = 2 // pendu en couleur
</jeux>
Pendu Jazz

Concernant l’alphabet utilisé, il est possible d’en choisir un autre ou de l’indiquer en clair à chaque jeu :

[config]
Alphabet = azerty1
Alphabet = A,B,C,D,È,É,Ê,Ë,Ï,Î,À,Â,Ä,Ô,Ö,Ù,Û,Ü

Voici les alphabets actuellement disponibles nativement :

latin1  : A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,-
latinbr  : A,B,C,D,,E,F,G,H,I,,J,K,L,M,N,,O,P,Q,R,S,,T,U,V,W,X,,Y,Z,-
azerty1  : A,Z,E,R,T,Y,U,I,O,P,,Q,S,D,F,G,H,J,K,L,M,,W,X,C,V,B,N
azerty2  : A,Z,E,R,T,Y,U,I,O,P,,Q,S,D,F,G,H,J,K,L,M,,W,X,C,V,B,N,-
qwerty1  : Q,W,E,R,T,Y,U,I,O,P,,A,S,D,F,G,H,J,K,L,,Z,X,C,V,B,N,M
qwerty2  : Q,W,E,R,T,Y,U,I,O,P,,A,S,D,F,G,H,J,K,L,,Z,X,C,V,B,N,M,-
qwerty3  : Q,W,E,R,T,Y,U,I,O,P,,A,S,D,F,G,H,J,K,L,Ñ,,Z,X,C,V,B,N,M,-
español1  : A,B,C,D,E,F,G,H,I,J,K,L,M,N,Ñ,O,P,Q,R,S,T,U,V,W,X,Y,Z,-
español2  : A,B,C,D,E,F,G,H,I,J,K,L,M,N,Ñ,O,P,Q,R,S,T,U,V,W,X,Y,Z,Á,É,Í,Ó,Ú,-
cyrillic1  : А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,Ъ,Ь,Ы,Э,Ю,Я

Notez que la double virgule entraîne un retour à la ligne.

Une autre façon de personnaliser votre alphabet est d’ajouter la ligne suivante dans config/mes_options.php :

define('jeux_alphabet_mesaccents', 'A,B,C,D,È,É,Ê,Ë,Ï,Î,À,Â,Ä,Ô,Ö,Ù,Û,Ü');

et puis configurer le jeu comme ceci :

[config]
Alphabet = mesaccents

Note de compatibilité : l’insertion de JavaScript dans les articles par les plugins a été facilitée par Spip 1.9.2. Le jeu du pendu n’est donc pour l’instant pas compatible avec les versions de SPIP antérieures ou égales à 1.9.1. À vos mises à jour !


*** Insérer une grille de mots-croisés ***

Les caractéristiques de ce jeu ont été placées ici : Des grilles avec le plugin « Jeux »


*** Insérer une grille de sudoku ***

Les caractéristiques de ce jeu ont été placées ici : Des grilles avec le plugin « Jeux »


*** Insérer un jeu multiple (un groupe de jeux) ***

Les caractéristiques de ce jeu ont été placées ici : Les jeux multiples

Discussion

156 discussions

  • 3

    Bonjour

    J’ai mis un QCM en place sous un squelette sarka-spip avec spip 2.1.10 et il me donne cet erreur :

    - Erreur de syntaxe

    Salut !

    • As-tu vérifié le code de ton jeu ?

      En le simplifiant dans un premier temps ? En le postant ici ?

    • Merçi.

      J’ai trouvé le problème, en désactivant « Retours de ligne automatiques » de le « Couteau suisse » tout va bien :-)

    • Bjr. Je n’ai pas fait l’essai, mais il me semble que la balise <jeux/> est protégée par cette lame du Couteau Suisse. Peut-être faudrait-il donc utiliser cette balise pour que le code du jeu ne soit pas perturbé avant son interprétation.

    Répondre à ce message

  • tontonlapin

    Tontonlapin voit des idées de jeux :

    a. Remettre dans l’ordre les phrases suivantes : A. Maitre Corbeau ; B. Tenait en son bec : C. Sur un arbre perché... réponse : ACB (Ah bon ?)
    b. Relier ce qui va bien ensemble : A:2+2 ; B:2x2 C:5 ; D:4 ; E:7-4 ; F:20/5 ; G:3... Réponse : ABFD et EG.

    Saurais tu faire ?
    Cordialement,
    TTLP

    Répondre à ce message

  • 6
    tontonlapin

    Bonjour,
    Bravo pour ce plugin qui fonctionne sur un précédent site ! Mais là, je coince... !

    J’installe votre plugin JEUX (version 2.2.0) et CFG (1.16.0), avec une version Spip 2.1.10, installée dans un sous-répertoire.

    Hébergement : free.fr (PHP Version 5.1.3RC4-dev) ;
    .htaccess (à la racine) contient uniquement « php 1 »
    htaccess.txt fourni par spip (dans le sous-répertoire d’installation) donne « internal erreur 500 » quand je le renomme en .htaccess.

    Dans l’interface privée, lorsque je crée un nouveau jeu (un premier jeu), le site renvoie dans un foudroyant cadre rouge :
    « Erreur SQL 1064 You have an error in your SQL syntax ; check the manual that corresponds to your MySQL server version for the right syntax to use near ’’ at line 3
    SELECT statut,contenu,id_jeu,type_jeu,titre_prive,date,type_resultat FROM spip_jeux WHERE id_jeu= »

    Je ne suis pas adepte de php ni de mysql... que puis-je faire ?

    • Salut,

      Je viens de faire plusieurs tests et je ne reproduis pas du tout ton erreur.
      -  Utilises-tu l’écran de sécurité ? est-il à jour ?
      -  Utilises-tu d’autres plugins ?
      -  quelle est l’URL qui présente cette erreur ?

    • tontonlapin

      Merci pour la réponse :
      Plugins instéllés : cfg 1.16.0
      Des jeux dans vos articles 2.2.0.
      Pas d’écran de sécurité.
      Le site coontient un seul article dont le jeu fonctione lorsqu’il est défini à l’intérieur de l’article. C’est l’ajout d’un nouveau jeu qui pose question. cf. PJ.
      En test sur jeannmarie. jeanson. free. fr/test/
      Bien à vous,
      JM.

    • tontonlapin

      Et pour aller plus loin...
      Ce message apparait pour l’auteur1 (webmestre du site), avec ou sans cookie de correspondance. Dessous le cadre, on peut trouver le texte ’Désolé, ce jeu n’existe pas !’.

      En recommançant l’ajout d’un nouveau jeu sous un nouvel auteur (rédacteur) : le cadre rouge n’apparaît pas. Seul peut se lire : ’Désolé, ce jeu n’existe pas !’.

      A votre disposition,
      Tontonlapin

    • meme erreur et toujours apres de longue recherche pas de solution, et meme configuration ???
      Merci pour l’aide

    • La version 2.2.1 du plugin règle-t-elle le problème ? As-tu des tables en base de données qui sont préfixées ?

      Peut-être serais-ti amené à désinstaller le plugin pour supprimer les tables, puis de la réinstaller pour que les tables soient correctes. N’hésite pas à nous donner le résultat de toutes ces opérations.

    • tontonlapin

      Suppression des tables et Installation de 2.2.1 avec spip 2.1.10 : je n’ai pas observé le problème ! Bravo et merci !
      TTLP

    Répondre à ce message

  • norbi90160

    Bonjour,

    Sympa ce plugin !
    Pour le sudoku, dans l’espace public, la mise en forme « en gras » qui permet de séparer les différents blocs n’ apparaît pas alors que ce phénomène n’existe pas dans l’espace privé.
    Une idée ?
    http://www.denney.fr

    Répondre à ce message

  • 4

    Bonjour,

    je souhaite inclure dans mes squelettes article une balise div qui contiendrait une BOUCLE QCM... Pensait-vous que se soit possible et auquel cas comment appeler le QCM depuis ma boucle (doit-on utiliser une boucle document ?). J’ai aussi voulu modifier le graphisme du QCM, j’ai donc placé la feuille.css du jeu dans mon dossier squelettes/style. Par contre comment demander à SPIP d’aller chercher cette interface graphique et non pas celle située dans le dossier plugin/auto/jeux à la racine du site ?

    Je vous remercie par avance de votre aide,
    Elodie

    • pour le premier point (la boucle QCM) j’ai du mal à comprendre. Mais je pense que ceci devrait vous aider http://www.spip-contrib.net/Boucles-et-Balises-sur-le-plugin

      pour le second point (la question de la feuille de style) il faut que votre feuille s’appelle du même nom que la feuille que vous vous voulez surcharger (par exemple qcm.css) : cf la notion de chemin http://programmer.spip.org/La-notion-de-chemin

    • Merci beaucoup pour ta réponse, en effet en ce qui concerne les boucles c’est tout à fait ce qu’il me fallait. Pour l’installation de la feuille css : qcm.css, je l’ai bien enregistré sous le même nom dans mon dossier squelettes/style, mais lorsque je publie un jeu en ligne, l’interface graphique du jeu n’a pas changé alors que j’ai modifié la feuille de style...
      J’aurai aussi une dernière question, penses-tu qu’il est possible, lorsque l’on répond bien à la question du QCM de passer à l’article suivant ?

      Merci encore,
      Elo

    • le dossier s’appel styles avec un s ;-)

      sinon je sais pas pour la seconde question, il y a longtemps que je ne suis plus l’évolution de ce plugin

    • Bonjour,
      merci en effet c’était bien ça, ça fonctionne très bien (c’était une erreur toute bête) ! Je n’ai plus qu’à trouver comment passer directement à la page suivante quand la réponse est bonne... Je ne m’y connais pas trop en php. mais je vais étudier la question. Si jamais tu as une idée, elle sera la bienvenue ! Merci encore !

      Elo

    Répondre à ce message

  • 2
    ashledombos

    Bonjour,

    j’ai un petit problème, j’espère que vous accepterez de m’apporter quelques lumières :)
    Le plugin fonctionne parfaitement dans l’espace privé, mais dans la partie publique, qu’il s’agisse de mon squelette (Zpip) ou de jeux.html, quelque soit le jeu, au lieu d’avoir l’affichage normal, je vois la balise en texte. Par exemple je vois, dans le corps de jeu.html :
    [titre] La devi­nette du jour [devi­nette] Comment appelle-​​t-​​on un patron de la nou­velle économie ? [reponse] Un e-​​responsable [config]id_jeu=1
    J’ai bien vérifié la présence de Inser_head, et installé au cas où Jqueru_ui
    En vous remerciant pour votre aide

    Raphaël

    • Bonjour.

      Quel genre de jeu est-ce ? Un jeu créé en base et que l’on appelle par modèle, ou un jeu créé directement dans le corps de l’article ?
      Quelle version de SPIP as-tu ?

    • ashledombos

      Ah, zut, mon dernier message n’est pas apparu, j’ai du oublier de le confirmer.
      Bon, j’ai trouvé le responsable entre temps, c’est le plugin typographie avancée, qui passe tout en |typo si j’ai bien compris :)

    Répondre à ce message

  • 10
    Aurélien

    Lorsque je mets en place le QCM, le bouton « Corriger » me renvoi vers la page d’accueil (http://www.monsite.org/#JEU87204) si le type d’adresse URL de mon site n’est pas en mode « page » !

    Une idée ?

    Merci,
    A.

    • Céline

      Bonjour,

      J’ai le même soucis. Avez vous trouvé une solution ?

    • avez vous la dernieère version du plugin ?

      normalmenr c’est corrigé avec http://zone.spip.org/trac/spip-zone/changeset/45252/_plugins_/jeux

    • Céline

      Oui j’ai bien la dernière version du plugin et la ligne 376 est correcte dans le fichier qcm

    • Guillaume

      J’ai le même soucis pour ma part malgré la correction.

      Personne n’aurait trouvé la solution ?

    • Bonjour,

      Même souci que Guillaume avec la dernière version de Jeux et de SPIP en local.

    • Bonjour,

      Même punition pour moi, avec Spip 2.1.10, jeux v2.1.4 (Rév. 45252).
      J’ai essayé :

      • passer de url propres2 à page
      • Supprimer la lame du couteau suisse de gestion des urls
      • supprimer le .htaccess
      • vider la table des urls
      • vider le cache

      Rien n’y fait.
      Cordialement

    • Bonjour,

      En passant à url propres je n’ai plus le retour à l’accueil mais la correction est sans effet et l’affichage des scores ne renvoi rien.

      • Jeux : Version : 0.15.1 [46660]
      • SPIP : SPIP 2.1.10 [17657]
    • Bonsoir,

      J’ai résolu le problème en remettant l’ancienne version du fichier jeux/jeux/qcm.php celui qui a en ligne 376

      $tete .= jeux_form_debut('qcm', $indexJeux);

      au lieu de

      $tete .= jeux_form_debut('qcm', $indexJeux, 'post', self());

      ce remplacement résoud ce problème, mais je ne connais pas encore les effets de bord de cette substitution.

      Cordialement
      Fred

    • Attention il y a une petite erreur dans ce code. Voir : http://zone.spip.org/trac/spip-zone...

      Ceci résout-il enfin le problème ?

    • Bonsoir,

      Oui cette dernière correction résoud le problème.

      Merci
      Fred

    Répondre à ce message

  • 1

    Bonjour,

    Pour le problème de QCM, j’ai résolu la question en modifiant la ligne 376 de jeux/jeux.qcm.php dans laquelle une variable de classe manquait, ce qui entrainait une erreur de construction.

    La ligne originale (version:45252) était :

    $tete .= jeux_form_debut('qcm', $indexJeux, 'post', self());

    ce qui nous donnait :

    <form name="qcm66181" class="post" method="spip.php?article74" action="#JEU66181">

    La ligne modifiée comprend une variable vide entre ’$indexjeux’ et ’post’

    $tete .= jeux_form_debut('qcm', $indexJeux, '', 'post', self());

    Le formulaire se construit correctement :
    <form name="qcm94966" method="post" action="spip.php?article74#JEU94966">

    Répondre à ce message

  • 2

    Bonjour,

    Pour un site dont le principal plugin sera « Des jeux dans vos articles » j’essaye d’apporter quelques modifications :
    Créer un système de classement des jeux pour améliorer le rangement en partie privée. Pour cela je voudrai créer des catégories et des sous catégories, dans le style rubriques et sous-rubriques et permettre d’y affecter les jeux. Typiquement un classement du style :

    • CE1
      • Calcul
      • Français
      • Géographie
    • CE2
      • Calcul
      • Français
      • Géographie

    Pour réaliser ça il faut créer une nouvelle table qui contiendra les catégories et sous catégories puis créer les fonctions de création, de modification et d’affichage de ces catégories et ajouter un champ dans le formulaire de création des jeux pour les attacher à une de ces catégories.
    Si vous souhaitez participer à ce projet, n’hésitez pas à me laisser un message, je suis preneur de toutes les bonnes volontés et compétences diverses.

    Fred

    • Super, belle perspective !

    • Bonjour,

      Bon, je patine dans la choucroute et je n’avance pas à grand chose.
      J’ai créé une table « categories » qui contient les champs suivants :
      ’id_categorie’
      ’id_parent’
      ’titre’
      ’descriptif’
      ’maj’
      et ajouté un champ « id_jeux » dans la table spip_jeux.

      J’ai renseigné cette table et affecté des catégories aux jeux (directement en base, puisque je n’ai pas encore le moyen de le faire par l’interface).
      J’ai pu créer la boucle qui m’affiche la liste des catégories parentes et je suis bloqué là...

      L’étape suivante serait que cette liste affichée soit dépliable en ajax pour afficher les sous-catégories, elles-mêmes cliquables pour afficher la listes des jeux affectés.

      J’ai tenté de comprendre le fonctionnement sur « programmer spip » mais j’avoue que ce n’est pas très concluant.
      Si quelqu’un voulait bien m’aider à avancer, ce serait formidable, d’autant plus que j’ai d’autres projets d’évolution et que de fait tout est en stand by.

      Merci

    Répondre à ce message

  • 4
    medialight

    Bonjour,

    Est il possible d’afficher le score en pourcentage au lieu de l’afficher en point
    j’ai mis mon score en pourcentage mais il m’affiche quand même le score en point

    [score] 
    0%: Il est urgent de réviser. Recommencez ! 
    30%: Vous n'avez pas la moyenne... Recommencez ! 
    50%: Ce n'est pas encore parfait... Recommencez ! 
    100%: Vous êtes vraiment un as. Félicitations ! 

    Merci de votre aide

    • de quel jeu parlez vous ?

    • medialight

      désolé j’ai oublié le précisé, j’ai mis en place un QCM, QRM. 

      merci

    • Oui absolument, le format du résultat pourrait être configurable dans le plugin, ça parait normal. Actuellement, le score est calculé de façon fixe, sur la base du modèle : fonds/jeu_score.html.

      Donc voici les pistes :

      1. une surcharge simple du modèle fonds/jeu_score.html dans ton squelette.
      2. un modèle natif produisant un résultat différent suivant le format du commentaire. Exemple : si les pourcentages y sont décelés, alors le score est un pourcentage.
      3. un nouveau paramètre de configuration, par exemple : [config]type_score=pourcent avec un filtre surchargeable (fonction en _dist) |jeu_score_pourcent{score, total} qui renverrait le bon format au modèle. Les types de score qui me viennent à l’idée : les points, les pourcentages, les notes (sur 20 ou sur 10), les lettres (type A_level), etc.

      Et :

      -  Je suis partant pour le 3e point, il permet facilement d’inventer son propre format.
      -  Le 2e point pose un problème de compatibilité antérieure et crée une dépendance non souhaitable entre le format du commentaire (format interne) et le format du score.
      -  Le 1er point est trop égoïste ;-)

      Pat

    • medialight

      Merci de votre réactivité , je suis d’accord le troisième point me semble plus évolutif.

    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