Dans ce projet, vous allez utiliser Python pour créer un générateur de personnages pour le jeu de rôle Donjons et Dragons. Vous allez demander à l'utilisateur d'entrer des informations sur le personnage, générer des statistiques de personnage au hasard, calculer des modificateurs et des points de vie, et effectuer des tests de caractéristiques. À la fin du programme, vous devez afficher toutes les caractéristiques du personnage : nom, race, classe, caractéristiques avec modificateur, points d'XP, niveau...
python_dnd_2024_[prenom].pypython_dnd_2024_[prenom]_x.txt (où x vaut 1, 2).v1.exit().isdigit(). Ex. : "1234".isdigit() → True ou ma_variable.isdigit().Demandez à l'utilisateur d'entrer un pseudo pour le personnage. Si le nom est vide, générez un pseudo en sélectionnant un animal et un adjectif au hasard parmi ces deux listes :
animaux = ["Souris", "Lapin", "Licorne", "Dragon", "Raton", "Biquette", "Cheval"]
adjectifs = ["Intrépide", "Sauvage", "Magique", "Badass", "Boloss", "Baltringue"]
Exemples :
Choisissez un pseudo : `Soupe Herman`
Vous avez choisi Soupe Herman.
Choisissez un pseudo : (vide)
J’ai choisi votre pseudo : Licorne Badass
Ensuite, affichez une liste de races possibles. Les races incluent : Humain, Elfe, Nain et Halfelin. L'utilisateur doit choisir parmi cette liste en tapant un numéro correspondant à l'option. Si l’utilisateur tape autre chose que des chiffres, quittez le programme. On suppose que l’utilisateur entre une valeur valide.
L'affichage à l'écran doit correspondre à ceci :
╔══════════════════════╗
║ Choisissez une race: ║
╚══════════════════════╝
1. Humain
2. Elfe
3. Nain
4. Halfelin
Veuillez entrer votre choix** : 2
Vous avez choisi Elfe.
Demandez à l'utilisateur d'effectuer son choix de classe. Enregistrez son choix. Les classes incluent : Guerrier, Roublard, Sorcier, Magicien, Clerc, Barbare. Ajoutez une ligne "Au hasard" (manuellement) au menu. On suppose que l’utilisateur entre une valeur correcte. Si l’utilisateur tape autre chose que des chiffres, quittez le programme. On suppose que l’utilisateur entre une valeur valide.
L'affichage à l'écran doit correspondre à ceci :
╔════════════════════════╗
║ Choisissez une classe: ║
╚════════════════════════╝
1. Guerrier
2. Roublard
3. Sorcier
4. Magicien
5. Clerc
6. Barbare
7. Au hasard
Veuillez entrer votre choix : 3
Vous avez choisi la classe Sorcier.
Si la classe est connue/correcte, affichez le message : Vous avez choisi la classe [nom_de_classe]
Si l’utilisateur choisit l’option "Au hasard", affichez le message : J’ai choisi la classe [nom_de_classe] au hasard pour vous.
Exemple d’affichage :
╔════════════════════════╗
║ Choisissez une classe: ║
╚════════════════════════╝
1. Guerrier
2. Roublard
3. Sorcier
4. Magicien
5. Clerc
6. Barbare
7. Au hasard
Veuillez entrer votre choix: 7
J’ai choisi la classe Magicien pour vous.
Les caractéristiques de base d'un personnage de Donjons et Dragons sont :
Vous pouvez stocker ces caractéristiques dans 6 variables. Pour chaque caractéristique, générez un nombre entier aléatoire entre 1 et 20. Votre personnage a droit à un bonus de caractéristique en fonction de sa race :
Incrémentez la caractéristique correspondante et affichez un message qui indique ce bonus.
Exemples :
Votre Humain reçoit un bonus de 2 DEX._
Avant : `DEX = 12`, après `DEX = 14`
Votre Nain reçoit un bonus de 2 FOR._
Avant : `FOR = 13`, après `FOR = 15`
Le modificateur de constitution est calculé de la manière suivante :
Exemples :
14 → Modificateur = 28 → Modificateur = -1Le modificateur ne change pas la valeur de la variable. Enregistrez la valeur du modificateur de constitution pour plus tard.
Affichez le modificateur:
Modificateur de constitution : 2
Votre personnage possède un nombre de points d'expérience généré au hasard. Ces points doivent être un multiple de 200 compris entre 0 et 3400 inclus.
Si vous n'arrivez pas à générer ce nombre comme demandé, vous n'aurez pas les points pour l'exercice, mais vous pouvez générer n'importe quel nombre au hasard entre 200 et 3400 pour résoudre la question suivante.
Affichez l’XP de votre personnage :
XP : 2200
Le niveau de votre personnage est fonction de son nombre de points d'expérience :
╔═════════╦════════╗
║ Pts ║ Niveau ║
╠═════════╬════════╣
║ < 300 ║ 1 ║
║ < 900 ║ 2 ║
║ < 2700 ║ 3 ║
║ < 6500 ║ 4 ║
║ >= 6500 ║ 5 ║
╚═════════╩════════╝
Affichez le niveau de votre personnage.
Exemple avec 1800 XP :
Niveau de votre personnage : 3
Les points de vie de votre personnage sont calculés en additionnant ces valeurs :
Affichez les points de vie : Points de vie : 17
Votre personnage peut recevoir un objet magique en fonction du tableau suivant : (Vous ne devez pas afficher ce tableau)
╔════════════╦═══════════╦═════════════════════╗
║ Race ║ Dextérité ║ Objet Magique ║
╠════════════╬═══════════╬═════════════════════╣
║ Humain ║ > 15 ║ Excalibur ║
║ Elfe ║ > 12 ║ Baguette de Sureau ║
║ Nain ║ > 13 ║ Hache Ipar Mentier ║
║ Halfelin ║ > 14 ║ Sabre Laz Air ║
╚════════════╩═══════════╩═════════════════════╝
Dans tous les autres cas, l’objet sera « Haricots ».
Vous devez afficher si votre personnage reçoit un objet magique :
Votre Guerrier a reçu : Grande épée
Si votre personnage ne reçoit pas d'objet magique, ne rien afficher.
Enregistrez cette valeur pour plus tard.
À la fin du programme, affichez votre personnage selon le modèle ci-dessous.
╔═══════════════════╗
║ Votre personnage: ║
╚═══════════════════╝
- Nom : Prof
- Race : Elfe
- Classe : Guerrier
- Points d'XP : 600
- Niveau : 2
- Objet Magique : Excalibur
╔═══════════════════╗
║ Caractéristiques: ║
╚═══════════════════╝
- Force : 10
- Dextérité : 18
- Constitution : 17
- BONUS : +3
- Intelligence : 6
- Sagesse : 19
- Charisme : 13
- Points de vie : 13
= 0, ne rien écrire.Nom du personnage : Prof
-------------------------------------------------------
Choisissez une race:
1. Humain
2. Elfe
3. Nain
4. Halfelin
Veuillez entrer votre choix: 2
Vous avez choisi Elfe.
-------------------------------------------------------
Choisissez une classe:
1. Guerrier
2. Roublard
3. Sorcier
4. Magicien
5. Clerc
6. Barbare
Veuillez entrer votre choix: 3
Vous avez choisi la classe Sorcier.
-------------------------------------------------------
Votre Humain reçoit un bonus de 2 DEX.
-------------------------------------------------------
Modificateur de constitution : 2
XP: 2220
Niveau de votre personnage: 3
Points de vie: 17
Votre Guerrier a reçu: Grande épée
╔═══════════════════╗
║ Votre personnage: ║
╚═══════════════════╝
- Nom : Prof
- Race : Humain
- Classe : Guerrier
- Points d'XP : 450
- Niveau : 2
- Objet Magique : Excalibur
╔═══════════════════╗
║ Caractéristiques: ║
╚═══════════════════╝
- Force : 10
- Dextérité : 18
- Constitution : 17
- BONUS : +3
- Intelligence : 6
- Sagesse : 19
- Charisme : 13
- Points de vie : 13
Créez une fonction encadre qui affiche les titres encadrés.
Exemple :
╔════════════════════════╗
║ Choisissez une classe: ║
╚════════════════════════╝
Cette fonction reçoit le texte à afficher en paramètre :
def encadre(texte):
# Votre code ici
# Appel de la fonction
encadre("Choisissez une classe")
"-" * 10 écrit "----------".Il faut utiliser la touche alt + un nombre tapé au pavé numérique.
Voici les combinaisons dont vous aurez besoin :
┌───┬─────────┐
│ ╔ │ alt-201 │
│ │ │
│ ═ │ alt-205 │
│ │ │
│ ║ │ alt-186 │
│ │ │
│ ╗ │ alt-187 │
│ │ │
│ ╚ │ alt-200 │
│ │ │
│ ╝ │ alt-188 │
└───┴─────────┘
Cela devrait fournir une conversion fidèle de votre document en Markdown, tout en maintenant la structure et la lisibilité du contenu.