Voici un cahier des charges complet et structurĂ© pour la rĂ©alisation de lâĂ©diteur de personnages Donjons & Dragons en PHP.
DĂ©velopper une application web PHP permettant de gĂ©rer des personnages de type Donjons & Dragons (version simplifiĂ©e basĂ©e sur la 5e Ă©dition). Lâapplication servira de back office du projet global.
Elle doit permettre de crĂ©er, afficher, modifier et supprimer des personnages, et proposer une interface claire et organisĂ©e, fidĂšle Ă lâunivers D&D.
Lâapplication est constituĂ©e de plusieurs pages reliĂ©es par un menu de navigation accessible en permanence.
| Page | Description |
|---|---|
| Accueil | Page d'accueil avec des statistiques globales |
| Liste des personnages | Tableau affichant tous les personnages enregistrés |
| CrĂ©ation dâun personnage | Processus en plusieurs Ă©tapes |
| Ădition dâun personnage | Formulaire simplifiĂ© inspirĂ© des fiches D&D |
| Ăquipement dâun personnage | Boutique en ligne pour Ă©quiper le personnage |
| Entrainement dâun personnage | Dojo en ligne pour entrainer le personnage |
| Apprentissage dâun personnage | Ecole en ligne pour Ă©duquer le personnage |
| Suppression | Possibilité de supprimer un personnage existant |
Un menu fixe ou en haut de page permet d'accéder facilement aux sections :
La page dâaccueil doit afficher des statistiques intĂ©ressantes sous forme de tableaux ou cartes visuelles.
Exemples de statistiques à proposer (en fonction de ton équipe):
| Statistique | Exemple | Team |
|---|---|---|
| Nombre total de personnages | 37 | Ninja |
| Nombre total de quĂȘtes disponibles | 18 quĂȘtes actives | Guerrier |
| Nombre de PJ / PNJ | 28 PJ / 9 PNJ | Paladin |
| Répartition par race | 10 humains, 7 elfes⊠| Chasseur |
| Répartition par classe | 12 guerriers, 8 magiciens⊠| Ninja |
| Classe la plus représentée parmi les PJ | 10 Guerriers | Guerrier |
| Moyenne dâĂąge | 31,4 ans | Paladin |
| Personnage le plus haut niveau | Elandril (niv. 5) | Chasseur |
| Moyenne de Force / DEX / etc. | 13.7 FOR, 11.3 DEX⊠| Guerrier |
| Nombre dâennemis vs alliĂ©s | 6 ennemis / 3 alliĂ©s | Paladin |
| Nombre de tests effectués | 42 | Chasseur |
| Nombre moyen dâobjets par personnage | 4.1 | Ninja |
| XP moyen par personnage | 840 | Guerrier |
| Classe avec le plus de PV moyen | Guerrier : 36 PV | Paladin |
| Plus ancien personnage créé | Galdrim, créé le 1er mars | Chasseur |
| Dernier personnage modifié | Aria, le 10 mai | Ninja |
| Objets les plus frĂ©quents | ĂpĂ©e courte (x7) | Guerrier |
| Répartition des alignements | 8 bons, 5 neutres, 2 mauvais | Paladin |
| Score maximal de Charisme | 20 | Chasseur |
| Score minimal de Constitution | 6 | Ninja |
| Taux de réussite aux tests | 63 % | Guerrier |
| Nombre de quĂȘtes en cours / terminĂ©es | 12 en cours / 6 terminĂ©es | Paladin |
| Personnage avec le plus dâobjets | Galdrim (8 objets) | Chasseur |
| Race la plus rare | 1 Tieffelin | Ninja |
| Personnage ayant le plus de PV | Krag (46 PV) | Guerrier |
| Moyenne dâobjets par personnage | 3,7 | Paladin |
| Total dâor en circulation | 327 PO cumulĂ©es | Chasseur |
| QuĂȘte avec la rĂ©compense la plus Ă©levĂ©e | "L'Ćuf du dragon" (200 XP, 100 PO) | Ninja |
| XP total cumulĂ© dans la base | 14âŻ350 XP | Guerrier |
| Répartition des alignements (graphique circulaire) | 45 % bons, 35 % neutres, 20 % mauvais | Paladin |
| Pourcentage de PJ ayant terminĂ© au moins une quĂȘte | 38 % | Chasseur |
| Moyenne de réussite aux tests | 61 % | Ninja |
| Nombre dâobjets achetĂ©s en boutique | 76 achats | Guerrier |
| Personnage avec le plus dâXP | Elindra (2âŻ750 XP) | Paladin |
| Répartition des personnages par niveau | 4 niv. 1, 9 niv. 2, 6 niv. 3, etc. | Chasseur |
Chaque ligne doit contenir :
Ajouter un personnageLa création se fait en deux étapes :
Affiche un formulaire avec les champs :
Tu as le choix de poster ce formulaire vers une autre page PHP pour le traitement ou de le poster vers vers la mĂȘme page.
Avant d'enregistrer les informations de ton personnage en base de données, prends soin de générer toutes les caractéristiques nécessaires, selon les consignes suivantes.
Génére automatiquement ces valeurs :
Chaque personnage possÚde un nombre de points de vie (PV) qui reflÚte sa résistance physique. Ce nombre dépend :
En D&D, chaque classe possÚde un dé de vie (Hit Die).
Tableau des dés de vie par classe
| Classe | DĂ© de vie | PV au niveau 1 |
|---|---|---|
| Guerrier | d10 | 10 + mod CON |
| Magicien | d6 | 6 + mod CON |
| Voleur | d8 | 8 + mod CON |
| Clerc | d8 | 8 + mod CON |
| Barbare | d12 | 12 + mod CON |
Ă la crĂ©ation du personnage, on attribue alĂ©atoirement un montant de piĂšces dâor de dĂ©part, selon la classe du personnage.
| Classe | PiĂšces dâor de dĂ©part (tirage simplifiĂ©) |
|---|---|
| Guerrier | entre 40 et 60 PO |
| Voleur | entre 30 et 50 PO |
| Magicien | entre 20 et 40 PO |
| Clerc | entre 30 et 50 PO |
| Barbare | entre 10 et 30 PO |
La fiche devrait ressembler à ceci (éventuellement à adapter en fonction des consignes):
Affiche également l'inventaire et la liste des sorts connus ou des attaques maßtrisées. Avec les liens qui permettent d'aller équiper ton personnage.
La page dâĂ©dition affiche la fiche complĂšte du personnage (comme dans la crĂ©ation) avec les champs modifiables pour certaines valeurs.
Il est possible de :
Elle pourrait ressembler Ă ceci:
Permettre Ă lâutilisateur de sĂ©lectionner des objets (armes, armures, potions, objets magiquesâŠ) Ă acheter pour un personnage, en fonction de ce quâil peut se permettre et ce qui lui est autorisĂ©.
La page commence par afficher un récapitulatif du personnage :
Affichage dâune liste dâobjets disponibles Ă lâachat, en fonction de :
Chaque objet affiché comprend :
Lorsquâun objet est achetĂ© :
đĄ ASTUCE Une façon simple de rĂ©aliser cette liste Avec les boutons pour ajouter des Ă©lĂ©ments consiste Ă crĂ©er un formulaire sĂ©parĂ© dans chaque case du tableau avec l'identifiant du personnage et l'identifiant de l'Ă©lĂ©ment Ă ajouter. Une fois l'acquisition validĂ©e, tu peux rediriger vers la page de visualisation.
Exemple:
<td>
<form method="POST" action="buy.php">
<input type="hidden" name="perso_id" value="4">
<input type="hidden" name="item_id" value="45">
<input type="submit" value="Acheter">
</form>
</td>
Il n'est pas nécessaire de gérer différemment les items qui sont ajoutés plusieurs fois. Par exemple, si l'armure magique est ajoutée 3 fois, elle peut apparaßtre 3 fois dans l'inventaire.
Permettre Ă lâutilisateur de sĂ©lectionner des attaques spĂ©ciales Ă ajouter Ă un personnage, en fonction de ce quâil peut se permettre et ce qui lui est autorisĂ©.
La page commence par afficher un récapitulatif du personnage :
Affichage dâune liste filtrĂ©e dâattaques disponibles, en fonction de :
Chaque objet affiché comprend :
Lorsquâun objet est achetĂ© :
| Nom de l'attaque | Niveau min | Prix (PO) | Description |
|---|---|---|---|
| Frappe lourde | 1 | 5 | Coup puissant infligeant +2 dégùts |
| Riposte rapide | 1 | 8 | Permet dâattaquer immĂ©diatement aprĂšs une parade |
| Coup de bouclier | 1 | 6 | Peut Ă©tourdir lâennemi pendant 1 tour |
| PercĂ©e offensive | 2 | 10 | Ignore lâarmure sur un jet critique |
| Frappe tournoyante | 2 | 12 | Frappe tous les ennemis autour |
| Attaque prĂ©cise | 1 | 9 | Bonus de +2 au jet dâattaque |
| Coup renversant | 2 | 11 | Fait tomber lâennemi au sol sur un succĂšs |
| Frappe des deux mains | 3 | 15 | Double les dégùts avec une arme lourde |
| Enchaßnement brutal | 3 | 18 | Permet deux attaques consécutives |
| Lancer de hache | 1 | 5 | Attaque à distance avec une hache légÚre |
| Estoc rapide | 2 | 10 | Ignore bonus de DEX Ă la CA |
| Contre-attaque | 2 | 12 | Riposte automatique sur Ă©chec de lâadversaire |
| Coup de genou | 1 | 4 | Frappe à courte portée, désoriente |
| Frappe rageuse | 3 | 20 | Dégùts x1,5 si PV < 50 % |
| Parade parfaite | 2 | 14 | Annule les dégùts une fois par combat |
| Charge furieuse | 3 | 16 | Dégùts + jet de Force pour repousser |
| Attaque circulaire | 4 | 22 | Frappe tous les ennemis dans un cĂŽne de 3 cases |
| Frappe critique améliorée | 4 | 25 | Critique sur 19-20 au lieu de 20 |
| Frappe silencieuse | 2 | 13 | Ne dĂ©clenche pas dâalerte lors dâun combat furtif |
| DĂ©sarmer | 3 | 15 | Force lâennemi Ă lĂącher son arme sur rĂ©ussite |
Permettre Ă lâutilisateur de sĂ©lectionner des sorts Ă ajouter Ă un personnage, en fonction de ce quâil peut se permettre et ce qui lui est autorisĂ©.
La page commence par afficher un récapitulatif du personnage :
Affichage dâune liste des sorts disponibles, en fonction de :
Chaque objet affiché comprend :
Lorsquâun objet est achetĂ© :
| Nom du sort | Niveau min | Prix (PO) | Description |
|---|---|---|---|
| Projectile magique | 1 | 5 | Crée 3 projectiles magiques automatiques (1d4+1) |
| Rayon de givre | 1 | 4 | Inflige des dégùts de froid et ralentit la cible |
| Bouclier | 1 | 6 | +5 CA jusquâau prochain tour |
| Armure de mage | 1 | 8 | Augmente la CA pendant 8h |
| Main spectrale | 1 | 5 | Manipule Ă distance de petits objets |
| LumiĂšre dansante | 1 | 3 | Fait apparaĂźtre 4 orbes lumineuses mobiles |
| Choc électrique | 2 | 10 | Inflige des dégùts à une cible métallique ou mouillée |
| Saut | 2 | 10 | Triple la hauteur de saut dâun alliĂ© |
| Invisibilité | 3 | 15 | Rend la cible invisible pendant 1 minute |
| Détection de la magie | 1 | 6 | Permet de sentir les sources magiques proches |
| FlÚche acide de Melf | 3 | 18 | Crée un projectile acide infligeant 2d4 dégùts |
| Mur de vent | 4 | 20 | Crée un mur qui bloque projectiles et fumées |
| CÎne de froid | 5 | 25 | Inflige 8d8 dégùts de froid en zone |
| Hùte | 4 | 22 | Donne une action supplémentaire par tour |
| Boule de feu | 5 | 30 | Inflige 8d6 dégùts de feu sur une grande zone |
| Télékinésie | 4 | 20 | Déplace objets ou ennemis par la pensée |
| Charme-personne | 2 | 8 | Force une cible à te considérer comme allié |
| Lévitation | 2 | 10 | Permet de flotter à 6 m du sol |
| Terreur | 3 | 15 | Provoque la fuite des ennemis faibles dâesprit |
| BarriÚre magique | 4 | 18 | Réduit de moitié les dégùts magiques reçus |
Lâapplication communique avec une base de donnĂ©es MySQL. Les accĂšs doivent ĂȘtre centralisĂ©s dans un fichier config.php.
La base sera la mĂȘme que celle conçue dans la premiĂšre phase du projet.
Les objets, races et classes peuvent ĂȘtre stockĂ©s dans des tables sĂ©parĂ©es ou directement codĂ©s en dur (selon le niveau visĂ©).