⌂  Menu général

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

TermeDéfinition
ClasseLe moule — décrit la forme, ne contient aucune donnée réelle
Objet / instanceCe qui sort du moule — un personnage précis du jeu
AttributUne 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).

  1. Combien d'objets magiques différents ce code décrit-il ?
  2. Quels seraient les attributs d'une classe ObjetMagique ?
  3. Quel problème concret poserait cette écriture avec 50 objets dans l'inventaire ?
Voir la correction →