Photoquiz

Une pure applet dans le stype des quizz. L'applet propose une question et le joueur doit choisir parmi les réponses possibles.
Le plus de cette applet est d'intéresser le joueur en montrant une photo en mosaique. Plus le joueur répond juste, meilleur est la résolution de la photo.
Quand la photo est découverte, l'applet en charge une autre et le jeu continue.
Si vous trouvez un sujet intéressant, les joueurs voudront absolument découvrir la photo et répondront sérieusement aux questions. N'est ce pas votre but ?

Comment ça marche ? :

Photoquiz charge une des images au hasard. Toutes les images doivent avoir le même modèle de nom ( par exemple img0.gif, img1.gif, img2.gif ). Des paramètres sont fournis pour vous permettre de choisir le style de nom de fichier image.
Puis Photoquiz charge les questions. Si vous avez un petit groupe de questions ( moins de 50 ) le mieux est de demander à l'applet de toutes les charger à l'initialisation.
Si vous avez un grand nombre de questions, donnez en paramètre un script et le nombre de questions que photoquiz doit charger à chaque fois.
Quand le joueur aura vu 75% des questions, photoquiz appelera le script pour charger un nouvel ensemble de questions. Les questions déjà chargées resteront en mémoire pour un nouveau jeu.

A quoi ressemble un fichier de questions ?

Une question suit toujours les mêmes règles :
  • Une question par ligne
  • Une ligne est faite de champs séparés par des virgules
L'ordre des champs est immuable et doit être ainsi :
  • Premier champ : Toujours égal au caractère 'q'. Pour une éventuelle évolution de l'applet.
  • Deuxième champ : Index de la bonne réponse. Attention : Cet index commence à 0
  • Troisième champ : Libellé de la question.
  • Champs suivants : Les propositions. 4 au maxium

Exemple :

Je veux ajouter une question à mon fichier
  • La question est "1+1=?"
  • Les réponses possibles sont : 1,2,3
  • L'index de la bonne réponse est 1 ( soit la seconde proposition, je pense que vous êtes d'accord ).
La ligne est la suivante :
q,1,1+1=?,1,2,3

Exemple 1 : Utilisation avec un seul chargement


Dans cet exemple, l'applet charge toutes les questions à l'initialisation.

Code HTML

<applet code="photoquiz.class" archive="photoquiz.jar" width="280" height="440">
<param name="qf" value="math.txt">
<param name="nqm" value="5">
<param name="nim" value="3">
<param name="mh" value="260">
<param name="bg" value="ffce63">
<param name="fontname" value="arial">
<param name="fontsize" value="12">
<param name="if" value="./image#.jpg">
<param name="oneload" value="1">
<param name="sng" value="Nouveau jeu">
<param name="sba" value="Bonne réponse !">
<param name="sgw" value="Mauvaise réponse !">
<param name="sv" value="Valider">
<param name="sc" value="Continuer">
</applet>

Le fichier math.txt

q,1,1+1=,1,2,3
q,0,3*4=,12,20,8
q,2,1 or 0 =,0, 2,1
q,1,0 nor 0 =,0,1,2

Exemple 2 : Utilisation avec un script


Dans cet exemple, l'applet appelle un script qui charge 5 questions à la fois.
C'est un exemple parce que le fichier des questions contient seulement 10 questions. Mais si vous avez des centaines de questions et ne voulez pas que le joueur attende trop longtemps, ce peut être une bonne réponse au problème.
Voici le script PHP3 :
<?
$f = file ($fn);
$i = 0;
while ( $i++ < 5 && $nl < count($f) )
  { 
   print $f[$nl++];
  }
?>
Ce script est très simple et lit simplement trois ligne d'un fichier texte. La première ligne à lire est donnée par le paramètre nl. C'est trés simple mais nous pouvons imaginer les questions lues dans une base de données.

Code HTML

<applet code="photoquiz.class" archive="photoquiz.jar" width="280" height="440">
<param name="qf" value="./getquestion.php?fn=math.txt&nl=#">
<param name="nqm" value="5">
<param name="nim" value="3">
<param name="mh" value="260">
<param name="bg" value="ffce63">
<param name="if" value="./image#.jpg">
<param name="sng" value="Nouveau jeu">
<param name="sba" value="Bonne réponse !">
<param name="sgw" value="Mauvaise réponse !">
<param name="sv" value="Valider">
<param name="sc" value="Continuer">
</applet>
</applet>

Paramètres de Photoquiz

oneloadSi ce paramètre est présent, le fichier de question est chargé entièrement à l'initialisation de l'applet.
qfURL du fichier des questions ou d'un fichier script. Si vous voulez que photoquiz ajoute lors de l'appel du script le nombre de questions déjà chargées, ajoutez le caractère '#'. Photoquiz remplacera le '#' par ce nombre.
Exemple : Vous devez appeler le script myscript.php3 qui attend un paramètre 'il' égal au nombre de lignes déjà chargées.
Vous devez entrer :
<param name="qf" value="./myscript.php3?ll=#">
nqmNombre de questions dans le fichier de questions ou nombre de questions existantes dans le cas de l'appel d'un script
mhHauteur maximum d'une photo en pixels.
nimNombre maximum d'images
ifModèle d'un fichier image. Mettez le caractère '#' à l'endroit où Phtoquiz doit insérer le numéro de l'image.
Exemple : Vous avez trois images img0.gif,img1.gif,img2.gif, you devrez entrer :
  • <param name="nim" value="3">
  • <param name="if" value="./img#.gif">
bgCouleur de fond au format RGB.
inkCouleur de l'encre au format RGB.
fontnameNom de la Font des questions.
fontsizeTaille de la Font des questions.
scoreSi ce paramètre est présent, un score est affiché.
URLOptionnel. URL d'un document à montrer chaque fois qu'une image est découverte.
Si le paramètre score est présent, l'URL sera appelée avec '?score=score du joueur'.
Exemple
  • Le paramètre score est présent.
  • L'URL est égale à "./savescore"
  • Le joueur à un score de 30
Un document ./savescore?score=30 sera appelé par l'applet
targetTarget où l'applet montre le document. Par défaut "_top"
sbaSupport multilangage. Phrase annonçant une bonne réponse ( "Good response" par défaut )
sgwSupport multilangage. Phrase annonçant une mauvaise réponse ( "Bad response" par défaut )
svSupport multilangage. Phrase du bouton de validation de la réponse ( "Validate" par défaut )
scSupport multilangage. Phrase du bouton pour passer à la question suivante ( "Continue" par défaut )
sngSupport multilangage. Phrase du bouton de nouvelle partie ( "New game" par défaut )