đŸ› ïž D&D: Phase 2 > Éditeur de personnages (PHP)

Voici un cahier des charges complet et structurĂ© pour la rĂ©alisation de l’éditeur de personnages Donjons & Dragons en PHP.

🎯 Objectif

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.


đŸ§± Structure gĂ©nĂ©rale de l’application

L’application est constituĂ©e de plusieurs pages reliĂ©es par un menu de navigation accessible en permanence.

đŸ”č Pages attendues

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

🧭 Navigation

Un menu fixe ou en haut de page permet d'accéder facilement aux sections :

  • Accueil
  • Personnages
  • Ajouter un personnage
  • Autres sections (bonus, si souhaitĂ©)

🧼 Page d'accueil – Statistiques du monde

La page d’accueil doit afficher des statistiques intĂ©ressantes sous forme de tableaux ou cartes visuelles.

01 dashboard

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

✍ Liste des personnages

  • Affiche tous les personnages de la base dans un tableau lisible.

02 liste

  • Chaque ligne doit contenir :

    • Nom
    • Race
    • Classe
    • Alignement
    • Niveau
    • Type (PJ / PNJ)
    • Actions possibles (🔍 Voir, ✏ Modifier, đŸ› ïž Équiper, đŸȘ„ Entrainer, ❌ Supprimer)
    • PrĂ©voir un bouton Ajouter un personnage

La création se fait en deux étapes :

đŸ”č Formulaire d'Ă©dition d'un personnage

03 edit base

  • Affiche un formulaire avec les champs :

    • Nom
    • Race (liste dĂ©roulante)
    • Classe (liste dĂ©roulante)
    • Alignement (liste : Loyal Bon, Neutre, Chaotique Mauvais
)
    • Type (PJ ou PNJ)
    • CatĂ©gorie PNJ si applicable (AlliĂ© / Ennemi)

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ération des valeurs aléatoires

Génére automatiquement ces valeurs :

  • CaractĂ©ristiques (FOR, DEX, CON, INT, SAG, CHA) : gĂ©nĂ©rĂ©es alĂ©atoirement (ex : 4d6, on garde les 3 meilleurs)
  • Modificateurs de caractĂ©ristiques : calculĂ©s automatiquement
  • Points de vie : calculĂ©s selon la classe
  • XP initial : 0
  • Niveau initial : 1
  • Inventaire vide par dĂ©faut

❀ Points de vie (PV)

Chaque personnage possÚde un nombre de points de vie (PV) qui reflÚte sa résistance physique. Ce nombre dépend :

  • de sa classe
  • de sa Constitution
  • et de son niveau

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

💰 Gestion des piùces d’or (PO)

À 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

đŸ”č Visualisation – Fiche personnage complĂšte

La fiche devrait ressembler à ceci (éventuellement à adapter en fonction des consignes):

view

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.


✏ Édition

  • 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 :

    • Modifier le nom
    • Modifier les 6 caractĂ©ristiques
    • Modifier le nombre de piĂšces d'or

Elle pourrait ressembler Ă  ceci:

editeur

🛒 Page "Marchand" – Équipement du personnage

🎯 Objectif

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Ă©.

05 marchand


đŸ”č OĂč cette page est-elle accessible ?

  • Dans la liste des personnages, ajouter un bouton 🛒 "Équiper" ou "Shop"
  • Dans la fiche d’un personnage, un onglet ou un bouton "Aller au magasin"

đŸ§Ÿ Fonctionnement de la page Marchand

  1. La page commence par afficher un récapitulatif du personnage :

    • Nom, classe, race, niveau, XP
    • PiĂšces d’or disponibles
    • Inventaire actuel
  2. Affichage d’une liste d’objets disponibles à l’achat, en fonction de :

    • XP ou niveau : certains objets nĂ©cessitent un niveau minimum
    • Or disponible : seuls les objets que le joueur peut se permettre sont activables (les autres sont grisĂ©s)
  3. Chaque objet affiché comprend :

    • Nom
    • Type
    • Prix en piĂšces d’or
    • Effet (tooltip ou description courte)
    • Bouton "Acheter"
  4. Lorsqu’un objet est achetĂ© :

    • Il est ajoutĂ© Ă  l’inventaire du personnage
    • Le montant correspondant est retirĂ© de ses piĂšces d’or
    • Le bouton "Acheter" devient dĂ©sactivĂ© si plus assez d’or

💡 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.

🛒 Page "Dojo"/"Attaques" – DĂ©veloppement du personnage

🎯 Objectif

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Ă©.

dojo


đŸ”č OĂč cette page est accessible ?

  • Dans la liste des personnages, ajouter un bouton 🛒 "Entrainer" ou "Dojo"
  • Dans la fiche d’un personnage, un onglet ou un bouton 🛒 "Entrainer" ou "Dojo"

đŸ§Ÿ Fonctionnement de la page Dojo

  1. La page commence par afficher un récapitulatif du personnage :

    • Nom, classe, race, niveau, XP
    • PiĂšces d’or disponibles
    • Attaques actuelles
  2. Affichage d’une liste filtrĂ©e d’attaques disponibles, en fonction de :

    • XP ou niveau : certains objets nĂ©cessitent un niveau minimum
    • Or disponible : seuls les objets que le joueur peut se permettre sont activables (les autres sont grisĂ©s)
  3. Chaque objet affiché comprend :

    • Nom
    • Type
    • Prix en piĂšces d’or
    • Effet (tooltip ou description courte)
    • Bouton "Acheter"
  4. Lorsqu’un objet est achetĂ© :

    • Il est ajoutĂ© Ă  la liste des attaques connues du personnage
    • Le montant correspondant est retirĂ© de ses piĂšces d’or
    • Le bouton "Acheter" devient dĂ©sactivĂ© si plus assez d’or

Exemples d'attaques:

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

đŸȘ„ Page "Écode de magie" – Apprentissage du personnage

🎯 Objectif

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Ă©.

ecole magie


đŸ”č OĂč cette page est accessible ?

  • Dans la liste des personnages, ajouter un bouton 🛒 "Apprendre" ou "Ecole"
  • Dans la fiche d’un personnage, un onglet ou un bouton 🛒 "Apprendre" ou "Ecole"

đŸ§Ÿ Fonctionnement de la page École de Magie

  1. La page commence par afficher un récapitulatif du personnage :

    • Nom, classe, race, niveau, XP
    • PiĂšces d’or disponibles
    • Attaques actuelles
  2. Affichage d’une liste des sorts disponibles, en fonction de :

    • XP ou niveau : certains objets nĂ©cessitent un niveau minimum
    • Or disponible : seuls les objets que le joueur peut se permettre sont activables (les autres sont grisĂ©s)
  3. Chaque objet affiché comprend :

    • Nom
    • Type
    • Prix en piĂšces d’or
    • Effet (tooltip ou description courte)
    • Bouton "Acheter"
  4. Lorsqu’un objet est achetĂ© :

    • Il est ajoutĂ© Ă  la listes des sorts connus du personnage
    • Le montant correspondant est retirĂ© de ses piĂšces d’or
    • Le bouton "Acheter" devient dĂ©sactivĂ© si plus assez d’or

Liste de 20 sorts possibles

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

đŸ’Ÿ Base de donnĂ©es et accĂšs

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Ă©).


🎹 Interface

  • L’interface doit rester sobre, fonctionnelle et claire.
  • Utilise HTML5 et CSS3, Ă©ventuellement un peu de Bootstrap si souhaitĂ©.
  • Le formulaire doit ressembler autant que possible Ă  une fiche papier D&D.

🔁 Bonus possibles

  • Pagination sur la liste des personnages
  • Statistiques dynamiques avec JS ou graphiques (Chart.js)
  • Recherche ou tri par caractĂ©ristiques
  • TĂ©lĂ©chargement de la fiche en PDF
  • SystĂšme de validation des donnĂ©es cĂŽtĂ© client

Pour aller plus loin