Dans ce projet, tu vas utiliser Python pour créer un générateur de personnages pour le jeu de rÎle Donjons et Dragons. Tu vas 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...
Téléchargez votre fichier depuis FileGator dans le dossier "TFA 2025"!!!!
âąïžâąïžâąïž Version normale âąïžâąïžâąïž
Nom du fichier: tfa_2025_[prenom].py
Une fois ton programme terminĂ©, fais-le tourner 2x avec des scĂ©narios diffĂ©rents et copie-colle le contenu complet de la console dans des fichiers nommĂ©s python_tfa_2025_[prenom]_x.txt (oĂč x vaut 1, 2).
Utilise Thonny IDE pour réaliser ton projet. Tu peux utiliser Visual Studio Code s'il est configuré pour Python.
Utilise des bons noms de variables.
Commente ton code (ce qu'il fait, pourquoi tu as écrit telle ligne de telle maniÚre...)
Le code doit fonctionner au dĂ©marrage du programme. C'est Ă dire qu'il ne peut pas y avoir d'erreur de syntaxe au moment oĂč on l'exĂ©cute. PĂ©nalitĂ©: 100% des points en moins avant mĂȘme de corriger la suite de l'exercice.
Dépose vos fichiers sur le site https://fichiers.ttrinfo.be dans le dossier Qualif Juin\v1.
exit().isdigit(). Ex. : "1234".isDigit() ou ma_variable.isdigit()Demande à l'utilisateur d'entrer un pseudo pour le personnage. Si le nom est vide, génére un pseudo en sélectionnant un animal et un adjectif au hasard parmi les listes animaux et adjectifs fournis dans ton fichier.
Exemple:
animaux = ["Souris", "Lapin", "Licorne", "Dragon", "Raton", "Biquette", "Cheval"]
adjectifs = ["Intrépide", "Sauvage", "Magique", "Badass", "Boloss", "Baltringue"]
Exemples :
Choisissez un pseudo: Soupe Herman
Vouz avez choisi Soupe Herman.
Choisissez un pseudo:
Jâai choisi ton pseudo : Licorne Badass
Ensuite, affiche une liste de races possibles.
L'utilisateur doit choisir parmi cette liste en tapant un numĂ©ro correspondant Ă l'option. Si lâutilisateur tape autre chose que des chiffres, quitte le programme. On suppose que lâutilisateur entre une valeur valide.
La sortie à l'écran doit correspondre à ceci:
Tu n'es pas obligé·e d'utiliser une boucle pour réaliser cet exercice. Tu peux afficher ce menu à la main. Par exemple:
print("1. Humain")
#...
ââââââââââââââââââââââââ
â Choisissez une race: â
ââââââââââââââââââââââââ
1. Humain
2. Elfe
3. Nain
4. Halfelin
Veuille entrer ton choix: 2
Vous avez choisi Elfe.
Demande Ă l'utilisateur d'effectuer son choix de classe. Enregistre son choix.
On suppose que lâutilisateur entre une valeur correcte. Si lâutilisateur tape autre chose que des chiffres, quitte le programme. On suppose que lâutilisateur entre un choix valide.
Tu n'es pas obligé·e d'utiliser une boucle pour réaliser cet exercice. Tu peux afficher ce menu à la main. Par exemple:
print("1. Guerrier")
#...
L'affichage à l'écran doit correspondre à ceci:
ââââââââââââââââââââââââââ
â Choisissez une classe: â
ââââââââââââââââââââââââââ
1. Guerrier
2. Roublard
3. Sorcier
4. Magicien
5. Clerc
6. Barbare
Veuillez entrer ton choix: 3
tu as choisi la classe Sorcier.
Si la classe est connue/correcte affiche le message tu as choisi la classe [nom_de_classe].
Ajoute une ligne âAu hasardâ (manuellement) au menu (pas dans la liste des classes).
7. Au hasard
Si lâutilisateur choisit lâoption « Au hasard », affiche le message Jâai choisi la classe [nom_de_classe] au hasard pour vous.
Exemple dâaffichage :
âââââââââââââââââââââââââ
â Choisisse une classe: â
âââââââââââââââââââââââââ
1. Guerrier
2. Roublard
3. Sorcier
4. Magicien
5. Clerc
6. Barbare
7. Au hasard
Veuille entrer ton choix: 7
Jâai choisi la classe Magicien pour vous.
Les caractéristiques de base d'un personnage de Donjons et Dragons sont:
Stocke ces caractéristiques dans 6 variables. Pour chaque caractéristique génére un nombre entier aléatoire entre 1 et 20.
Ton personnage a droit à un bonus de caractéristique généré au hasard en fonction de sa race. Ces bonus sont appliqués pour chaque race de ton fichier perso. La 1Úre race de ta liste reçoit un bonus de force, la 2e de dextérité... et ainsi de suite dans l'ordre suivant:
| N° | Caractéristique |
|---|---|
| 1 | Force |
| 2 | Dextérité |
| 3 | Constitution |
| 4 | Intelligence |
| 5 | Sagesse |
Par exemple:
races = ["Humain", "Nain", "Elfe", "Halfelin", "Dragon"]
Incrémente la caractéristique correspondante et affiche un message qui indique ce bonus.
Exemples:
Votre Humain reçoit un bonus de 2 FOR.
(Avant : FOR = 12, aprĂšs FOR = 14)
Votre Nain reçoit un bonus de 2 DEX.
(Avant : DEX = 13, aprĂšs DEX = 15)
Ton personnage doit aussi supporter les caractérisitiques suivantes:
Calcule l'IMC de ton personnage (poids (en kg) / taille (en m) ÂČ) et interprĂȘte la valeur de l'IMC:
= 18.5 et <25: normal
= 30: Obésité
Exemple:
Poids: 70 kg
Taille: 175 cm
IMC: 22.87
Interprétation: Normal
Le modificateur de constitution est calculé de la maniÚre suivante:
Exemples:
Le modificateur ne change pas la valeur de la variable: enregistre la valeur du modificateur de constitution pour plus tard.
Affiche le modificateur :
Modificateur de constitution : 2
Affiche les modificateurs pour les 6 caractéristiques de base (FOR,DEX,INT,SAG,CON,CHA).
Ton 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 tu n'arrives pas Ă gĂ©nĂ©rer ce nombre comme demandĂ©, tu n'auras pas les points pour l'exercice, mais tu peux gĂ©nĂ©rer n'importe quel nombre au hasard entre 200 et 3400 pour rĂ©soudre la question suivante. Affiche lâXP de ton personnage :
XP : 2200
Ajoute le résultat de 20d6 x 10 à l'XP (20 lancés d'un dé à 6 faces).
Exemple (pour une xp de 2000):
Lancés: 6 4 2 3 1 5 2 4 6 2 5 6 2 3 2 1 4 5 6 3
=> BONUS XP de 720
=> XP = 2720
Pour éviter de passer à la ligne à chaque fois que tu utilises la fonction print, ajoute le paramÚtre "end=" "" en derniÚre position dans ton print. Exemple:
print (1, end=" ")
print (3, end=" ")
print (2, end=" ")
# Affichera 1 3 2
Le niveau de ton personnage est fonction de son nombre de points d'expérience:
âââââââââââŠâââââââââ
â Pts â Niveau â
â ââââââââââŹâââââââââŁ
â < 300 â 1 â
â < 900 â 2 â
â < 2700 â 3 â
â < 6500 â 4 â
â >= 6500 â 5 â
âââââââââââ©âââââââââ
Utilise une suite de if, elif et else pour obtenir le résultat.
Affiche le niveau de ton personnage. Exemple avec 1800 XP :
Niveau de ton personnage: 3
Les points de vie de ton personnage sont calculés en additionnant ces valeurs (= somme):
Affiche les points de vie :
Points de vie: 17
Le niveau de ton personnage représente le nombre de fois que tu peux lancer 1 dé à 4 faces (d4). Effectue ce nombre de lancers et ajoute le résultat aux points de vie.
Exemple (pour pv=14 et niveau=3):
Bonus points de vie:
Lancés: 4 1 2
Résultat: 7 -> PV = 21
Ton personnage peut recevoir un objet magique Ă choisir au hasard parmi les objets suivants:
Crée une liste et sélectionne 1 objet au hasard dans cette liste. Enregistre cette valeur dans une variable pour plus tard.
A la fin du programme, affiche ton personnage selon le modĂšle ci-dessous.
âââââââââââââââââââ
â ton 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 (3)
- Intelligence: 6
- Sagesse: 19
- Charisme: 13
- Points de vie: 13
Affiche aussi toutes les caractéristiques bonus générées précédemment (poids, vitesse,...)
MALUS" + valeur.
MALUS -2BONUS +Valeur" (il faut afficher le signe "+").
BONUS: +3Exemple:
- Constitution: 17 (3)
BONUS : +3
Nom du personnage: Prof
-------------------------------------------------------
Choisisse une race:
1. Humain
2. Elfe
3. Nain
4. Halfelin
Veuille entrer ton choix: 2
tu as choisi Elfe.
-------------------------------------------------------
Choisisse une classe:
1. Guerrier
2. Roublard
3. Sorcier
4. Magicien
5. Clerc
6. Barbare
Veuille entrer ton choix: 3
tu as choisi la classe Sorcier.
-----------------------------------------------------
ton Humain reçoit un bonus de 2 DEX.
-----------------------------------------------------
Modificateur de constitution : 2
XP: 2220
Niveau de ton personnage: 3
Points de vie: 17
ton 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
Ajoute la caractéristique "alignement à ton personnage, à générer au hasard selon le tableau suivant:
| * | Loyal | Neutre | Chaotique |
|---|---|---|---|
| Bon | Loyal Bon | Neutre Bon | Chaotique Bon |
| Neutre | Loyal Neutre | Neutre | Chaotique Neutre |
| Mal | Loyal Mal | Neutre Mal | Chaotique Mal |
Crée 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) :
⊠# ton code ici
#Appel de la fonction
encadre("Choisisse une classe")
Astuces :
Il faut utiliser la touche alt + un nombre tapé au pavé numérique.
Voici les combinaisons dont tu auras besoin:
âââââŹââââââââââ
â â â alt-201 â
â â â
â â â alt-205 â
â â â
â â â alt-186 â
â â â
â â â alt-187 â
â â â
â â â alt-200 â
â â â
â â â alt-188 â
âââââŽââââââââââ