Projet 6 : SQL
Utilisation d'une base de données SQLite
Objectifs
Au terme de cet exercice, vous serez capables de :
d'utiliser PDO pour se connecter à une base de données SQLite
de préparer et exécuter des requêtes SQL en PHP
de lire les résultats envoyés par une requête SQL
De lire et modifier des données en SQL
Enoncé
Créer un jeu du pendu en AJAX. Le client web ne doit savoir que
les lettres trouvées
le nombre de lettres du mot
l'état de la potence
les lettres déjà proposées
La partie PHP doit tirer un mot au hasard dans un fichier SQLite et, en fin de partie, mettre à jour
les statistiques du mot (nombre de fois où je joueur a gagné et nombre de fois où il a perdu)
Remarques
Si une même lettre apparaît plusieurs fois, tous les exemplaires doivent être révélés en même temps.
Les images sont numérotées de 00 à 11, 00 correspond au début de partie et 11 à la partie perdue.
Ressources
Les ressources suivantes sont disponibles sur le site http://cours.endor.be/AJAX_1ere et sur la
plateforme Moodle de la catégorie économique http://elearning.eco.condorcet.be/moodle2X/
common.js : librairie javascript de base
pendu.sqlite : fichier de base de données SQLite contenant les mots à proposer
img/penduxx.jpg : images de 00 à 11 avec la potence à différents niveaux de construction
La base de données SQLite contient une table "mots" définie comme suit :
id INTEGER AUTOINCREMENT Numéro du mot
mot VARCHAR(16) Mot à trouver
trouve INTEGER Nombre de fois où le mot a été trouvé
rate INTEGER Nombre de fois où le mot n'a pas été trouvé
Tous les id sont présents et commencent à la valeur 1.
Cahier des tâches
Les RPC en PHP
Nouvelle partie
Ce RPC doit choisir un mot au hasard dans la DB, générer une chaîne de caractères "-" de même
taille, mettre le compteur de potence à 0, sauver toutes ces données dans la session et renvoyer au
navigateur le nombre de lettres du mot (ou, au choix, la chaîne composée de "-")
Proposition d'une lettre
Ce RPC doit vérifier si la lettre apparaît dans le mot. Si c'est le cas, elle doit être "révélée" dans la
chaîne composée de "-", sinon, l'état de la potence doit être augmenté de 1.
Si la potence atteint le niveau 11, le joueur à perdu et le nombre de fois où le joueur a perdu pour le
mot doit être augmenté de 1.
Si toutes les lettres sont révélées, le joueur a gagné et le nombre de victoires pour le mot doit être
augmenté de 1.
Le RPC doit retourner au navigateur l'état de la potence et la chaîne composée de "-" et des lettres
trouvées.
Javascript
Au début de partie, le javascript demandera au PHP de démarrer une nouvelle partie.
Au retour, il affichera le tableau de jeu : l'image de la potence, le mot à trouver (la suite de "-") et
la/les zones d'entrée qui permettra/permettront de choisir la lettre proposée (méthode de choix de la
lettre à votre libre choix)
Lorsqu'une lettre est choisie, elle sera envoyée au RPC.
Le retour du RPC permettra de mettre l'écran de jeu à jour.
Lorsque la partie est finie, le Javascript devra faire apparaître un bouton qui permettra de
recommencer une partie ainsi qu'un texte indiquant si on a gagné ou perdu.
Améliorations possibles
Ces améliorations sont optionnelles et ne sont que des exemples d'améliorations pouvant être
implémentées. D'autres voies d'améliorations non citées sont également possibles.
Conserver la liste des lettres déjà proposées
Affichage des statistiques du mot en fin de partie
Interface permettant d'ajouter des mots (attention à ne pas insérer un mot en double)
...
Astuce
Pour former une chaîne de caractères contenant un nombre n sur deux chiffres, on peut prendre les 2
derniers caractères de la chaîne de caractères qui correspond à (100+n)
Documentation des RPC
Pour documenter les RPC, on utilisera un fichier texte pur (TXT, pas de traitement de texte) dans
lequel on reprendra pour chaque RPC
Le nom du RPC
Les paramètres d'entrée (ainsi que le contenu attendu)
Les valeurs en sortie
Un bref descriptif de la tâche effectuée par le RPC
Grille d'évaluation
Domaine Critère Indicateur ++ + +/- - Commentaire
Forme Respect des consignes Le travail est remis dans les temps (avant le
12/3/2013)
Les contraintes sont respectées
Respect des
standards
Code lisible Le code est correctement indenté
Les noms des variables sont explicites et
respectent les règles de nommage
Standards HTML et CSS
récents respectés ?
La page n'utilise pas de balises HTML ou de
propriétés CSS dépréciées ou incorrectes
Correction Erreurs Le programme tourne sans erreurs
Résultat Les fonctionnalités implémentées effectuent
bien les tâches demandées
Complet Toutes les fonctionnalités demandées sont
présentes
Portabilité Le programme peut tourner sans problème
sur tous les navigateurs récents
Les chemins vers les ressources sont
exprimés de façon relative et correspondent à
la norme web
Qualité de la
programmation
Organisation Les codes javascript et les feuilles de styles
sont dans des fichiers séparés.
Une arborescence logique est utilisée.
Code propre Pas de répétition inutile de blocs de codes, de
conditions, ...
Pas de variables ou paramètres inutiles
Les extensions des éléments statiques
correspondent à leur contenu.
Les extensions standards sont utilisées
Elégance Les algorithmes utilisés sont efficaces et bien
choisis.
Design Affichages corrects Les affichages sont corrects, disposés de
façon logique
Absence d'artefacts de rendu (espacements,
bordures,... dont la présence n'est pas voulue
et nuit à l'affichage)
Documentation RPC Documentés Les RPC AJAX sont documentés : nom,
entrées, sorties, utilité,...
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !