Exercices Projets guidés Classe Board avec héritage
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Classe Board avec héritage

On va maintenant regrouper tout ce qu'on a fait dans une classe Board. Cette classe encapsule la grille et toutes les opérations dessus : poser un pion, vérifier si une case est vide, vérifier si la grille est pleine, et detecter un gagnant.

Encapsuler, ca veut dire mettre les données et les fonctions qui les manipulent dans le meme objet. Au lieu d'avoir une grille et des fonctions séparées, on a un objet Board qui sait tout faire.

Dans le __init__, tu initialises la grille. Les méthodes remplacent les fonctions qu'on a ecrites avant, mais elles utilisent self.cells au lieu de recevoir la grille en paramètre.

Écris une classe Board avec :
- __init__ : initialise self.cells comme une grille 3x3 d'espaces
- is_empty_cell(ligne, colonne) : renvoie True si la case est vide
- add_move(symbole, ligne, colonne) : place le symbole si la case est vide, renvoie True/False
- is_full() : renvoie True si toutes les cases sont remplies
- check_winner() : renvoie 'X', 'O' ou None

Exemple :
b = Board()
b.is_empty_cell(0, 0) renvoie True
b.add_move('X', 0, 0) renvoie True
b.is_empty_cell(0, 0) renvoie False

Tests (5/6)

Grille vide au depart
b = Board()
assert b.is_empty_cell(0, 0) == True
Poser un pion
b = Board()
assert b.add_move('X', 1, 1) == True
assert b.is_empty_cell(1, 1) == False
Case occupee
b = Board()
b.add_move('X', 0, 0)
assert b.add_move('O', 0, 0) == False
Pas pleine au depart
b = Board()
assert b.is_full() == False
Detecter gagnant
b = Board()
b.add_move('X', 0, 0)
b.add_move('X', 0, 1)
b.add_move('X', 0, 2)
assert b.check_winner() == 'X'

+ 0 tests cachés

Indices (3 disponibles)

solution.py