Créer un jeu de quizz
2020-04-01 09:18:38
par François Parisien
Contexte
Imaginons que nous voulons créer un petit jeu spécial à l’intérieur d’un site web. Voir, le site web pourrait être lui-même le jeu.
Description du besoin
Pour notre jeu, nous allons établir un plan. Nous élaboreront le jeu de cette façon : Une question, une réponse possible et un texte explicatif de la réponse. Une fois nos questions inséré dans le jeu, le joueur devra répondre à ces questions et une notion de « succès » ou « erreur » sera affiché. Il pourra ainsi passé à la question suivante et ainsi de suite.
Requis technique
Connaissances requises
- Être capable de manipuler les informations d’une base de données (ajouter, modifier, supprimer et lire);
- Manipuler des formulaires;
Description du fonctionnement
Les questions devront être entrées dans une base de données. On y insérera les questions, mais aussi les réponses et une brève explication de celle-ci. Le joueur qui voudra jouer se verra alors affiché une question au hasard. Il devrait, via un champ texte, entrer la réponse qu’il croit. Le script analysera cette réponse pour savoir s’il s’agit de la bonne ou non. L’explication de la réponse sera ensuite affichée lorsqu’on indiquera à l’utilisateur son résultat.
Les étapes à faire
-
Créer une table SQL qui contiendrait les champs suivants :
- id : identifiant numérique unique;
- Question : La question à poser;
- Réponse : La réponse à la question;
- Explication : L’explication de la réponse
- Il faudra créer une section admin afin de pouvoir gérer les questions. Un formulaire contenant les champs pour demander la question, la réponse et l’explication sera nécessaire;
- Une page où le joueur devra avoir accès devra être créée. Sur cette page, on affichera une question choisie dans la base de données, de façon aléatoire. Un formulaire contenant un champ texte devra être accessible. Le joueur y inscrira la réponse à la question. Il faudra aussi, mettre en champ caché l’ID de la question afin de pouvoir aller la récupérer dans le traitement de la réponse.
- Lorsque le joueur soumettra le formulaire, un travail d’analyse commencera. Il faudra récupérer la réponse donnée par le joueur et la comparer avec ce qu’il y a dans la base de données. On récupèrera la bonne question grâce à l’ID qui a transité dans la soumission du formulaire via un champ caché.
- On affichera à nouveau la question au joueur, avec la bonne réponse. Si le joueur a donné la bonne réponse, on lui affichera un message de succès. Alors qu’un message d’erreur sera affiché dans l’autre circonstance. On pourra venir étoffer l’affichage en y inscrivant l’explication de la réponse.
Aller plus loin
Le jeu de quizz peut aller beaucoup plus loin que cela. Les possibilités sont quasiment illimité. En voici quelques idées :
- Faire un processus afin de ne pas tomber sur la même question 2 fois. On pourrait penser à sauvegarder les IDs des questions en mémoire dans la session du joueur. Au moment où on choisi la question, on vérifie si elle s’y retrouve. Si tel est le cas, on en choisit une nouvelle. Ne pas oublier de l’ajouter dans la session du joueur au moment où il soumettra sa réponse;
- Mettre une thématique sur les questions. Ainsi, le joueur pourrait choisir des questions parmis un seul sujet. On pourrait penser à ajouter une table SQL qui contiendrait les thèmes et on ajouterait un champ dans la table des questions qui contiendrait l’ID de la catégorie. Il faudrait créer un nouveau formulaire de gestion de catégorie dans l’admin. Une page devra aussi être offert au joueur pour qu’il choisisse la catégorie voulu. On passera un paramètre dans l’URL afin de retenir le choix de l’utilisateur.
- Mettre en place un système de score. Le joueur pourrait choisir combien de question il veut et avoir un sommaire final lui montrant ses résultats. Pour ça, on pourrait sauvegarder l’information dans la session de l’utilisateur. Au moment de choisir la prochaine question, on pourrait vérifier combien de questions sont déjà sortie. Si c’est le nombre choisi au départ, alors on sait que c’est la page de résultat qu’il faut afficher. De là, on irait les données qui sont dans la session de l’utilisateur.
- Mettre en place des rangs. Au lieu de stocker les informations dans la session utilisateur, on pourrait les stocker dans une nouvelle table SQL. Essentiellement, elle contiendrait les mêmes informations. Ce qui permettrait, à terme, d’accumuler des statistiques sur les joueurs et de créer des classements par exemple.