Séance 1 · 1 heure
Le problème à résoudre
Fil rouge du chapitre : créer un jeu de rôle
Accroche Un combat, sans classes
Voici un premier jet de code pour gérer un combat entre un héros et un monstre.
combat_v1.py
hero_nom = "Aria"
hero_pv = 100
hero_force = 15
monstre_nom = "Gobelin"
monstre_pv = 30
monstre_force = 5
# Le héros attaque le monstre
monstre_pv = monstre_pv - hero_force
print(monstre_nom, "a maintenant", monstre_pv, "pv")
À discuter en binôme (2 min) — Ce code fonctionne pour deux personnages. Que se passe-t-il si le donjon doit gérer 10 monstres différents ?
Apport Le vocabulaire du moule et de l'objet
| Terme | Définition |
|---|---|
| Classe | Le moule — décrit la forme, ne contient aucune donnée réelle |
| Objet / instance | Ce qui sort du moule — un personnage précis du jeu |
| Attribut | Une caractéristique qui appartient à l'objet |
Démonstration Notre premier moule
personnage.py
class Personnage:
def __init__(self, nom, pv, force):
self.nom = nom
self.pv = pv
self.force = force
hero = Personnage("Aria", 100, 15)
print(hero.nom) # Aria
Exercice — L'inventaire mal rangé
Un développeur a écrit ce code pour gérer les objets magiques d'un inventaire (épée, potion, bouclier, chacun avec un nom, des dégâts, un statut rare).
- Combien d'objets magiques différents ce code décrit-il ?
- Quels seraient les attributs d'une classe
ObjetMagique? - Quel problème concret poserait cette écriture avec 50 objets dans l'inventaire ?