đ Ce projet de fin dâannĂ©e vise Ă concevoir un systĂšme complet de gestion de personnages de type 'Donjons & Dragons' (D&D 5e Ă©dition, simplifiĂ©e) Ă travers quatre volets techniques
Ce projet a pour objectif de développer un univers technique et narratif complet, inspiré de Donjons & Dragons (5e édition), réparti en quatre volets applicatifs :
đ§° Un back-office PHP : pour la gestion complĂšte des personnages, des objets et des rĂšgles du jeu.
đ Un front-office Flask (Python) : pour une visualisation interactive et esthĂ©tique du monde et des personnages.
đź Un mini-jeu Pygame : qui met en scĂšne les personnages et leur permet dâinteragir dans des combats ou dĂ©fis.
đ Une API REST (option PHP ou Python) : qui permettra Ă dâautres applications ou modules dâinteragir avec les donnĂ©es.
Lâensemble est reliĂ© par une base de donnĂ©es MySQL unique, partagĂ©e entre les diffĂ©rents modules.
Ce projet te demandera de combiner plusieurs compĂ©tences acquises durant lâannĂ©e : modĂ©lisation de base de donnĂ©es, programmation web cĂŽtĂ© serveur, dĂ©veloppement front-end, gestion de projet, intĂ©gration de bibliothĂšques, rĂ©utilisation de donnĂ©es, etc.
Dans Donjons & Dragons, chaque joueur incarne un personnage imaginaire dans un univers mĂ©diĂ©val-fantastique. Ce personnage a des caractĂ©ristiques, une race (elfe, nain, humainâŠ), une classe (guerrier, voleur, magicienâŠ) et progresse en accumulant de lâexpĂ©rience.
Notre projet se base sur les principes de la 5e Ă©dition de D&D, en les adaptant lĂ©gĂšrement pour quâils restent simples Ă gĂ©rer informatiquement.
Un joueur incarne un personnage évoluant dans un monde médiéval-fantastique. Ce personnage a une race, une classe, des caractéristiques, un niveau, une expérience, un inventaire, etc.
Tous les personnages (PJ ou PNJ) possĂšdent :
Nom
Race (ex. : Humain, Elfe, Nain, OrcâŠ)
Classe (ex. : Guerrier, Mage, Voleur, ClercâŠ)
Alignement (ex: bon, neutre, mauvais)
Niveau (de 1 Ă 5)
Points dâexpĂ©rience (XP)
Points de vie (PV)
6 caractéristiques notées sur 20 :
Chaque caractéristique possÚde un modificateur : mod = (valeur - 10) // 2
Par exemple, une Force de 16 donne un modificateur de +3.
Les points de vie reprĂ©sentent la rĂ©sistance physique dâun personnage. Ils dĂ©pendent de la classe et du niveau.
Les personnages gagnent des XP en accomplissant des actions ou des dĂ©fis. Lâaccumulation dâXP permet dâatteindre un niveau supĂ©rieur, ce qui amĂ©liore les compĂ©tences du personnage.
| Niveau | XP nécessaires |
|---|---|
| 1 | 0 |
| 2 | 300 |
| 3 | 900 |
| 4 | 2âŻ700 |
| ⊠| ⊠|
(On sâarrĂȘtera au niveau 5 pour ce projet)
Chaque personnage peut possĂ©der un ou plusieurs items. Les objets enrichissent lâunivers et ont un type, des effets, un niveau requis, etc.
{
"nom": "ĂpĂ©e du feu",
"type": "arme",
"effet": "+3 dégùts",
"niveau requis": 2
}
Les tests de caractĂ©ristiques permettent de simuler des actions risquĂ©es (ex : escalader, persuader, dĂ©tecter un piĂšgeâŠ). Chaque test :
Tu développeras 3 applications connectées à une base de données MySQL commune :
| Partie | Langage | Fonction |
|---|---|---|
| Ăditeur de personnages | PHP (avec HTML/CSS) | CrĂ©ation, Ă©dition, suppression de personnages |
| Visualisateur | Flask + Bootstrap/Tailwind | Affichage attrayant des personnages |
| Mini-jeu | Pygame | Utilisation des personnages dans un jeu simple |
Une API REST (Representational State Transfer) est une interface qui permet à différentes applications de communiquer via Internet de maniÚre structurée.
Elle pourra ĂȘtre dĂ©veloppĂ©e au choix en PHP ou en Python.
Chaque partie fera lâobjet dâun cahier des charges prĂ©cis, que nous aborderons ensemble.
Ce projet te permettra de mobiliser :