Salut, nous revoilà pour un tutoriel aussi intéressant que les précédent sur Python ! 😊 Aujourd’hui, on va créer un jeu de dames sympa en Python, en utilisant Tkinter pour l’interface graphique. Que tu sois novice ou déjà à l’aise en Python, suis ce guide étape par étape, et on s’amusera à coder ensemble !
Pré-requis
Avant de commencer, assure-toi que :
- Python 3 est installé sur ton ordinateur.
- Tkinter est bien installé (c’est inclus par défaut dans Python).
- Un éditeur de code comme VS Code, PyCharm, ou tout simplement l’éditeur de texte de ton choix est prêt à l’emploi.
1️⃣ Structure du Projet
Nous allons créer une classe CheckersGame qui contient toute la logique et l’interface du jeu. L’interface graphique sera gérée via un Canvas
de Tkinter, où chaque case et chaque pièce seront dessinées dynamiquement.
2️⃣ Installer Tkinter et Démarrer un Projet Basique
Crée un fichier Python (par exemple, dames.py
) et commence par importer Tkinter :
class CheckersGame:
def __init__(self, root):
self.root = root
self.root.title("Jeu de Dames 🎲")
self.board_size = 8 # Échiquier 8x8
self.cell_size = 60 # Taille d'une case (en pixels)
self.board = [] # Plateau de jeu (tableau 2D)
self.selected_piece = None # Pièce sélectionnée
self.current_turn = "white" # Tour du joueur ("white" ou "black")
# Crée un Canvas pour dessiner l’échiquier
self.canvas = tk.Canvas(
root, width=self.board_size * self.cell_size, height=self.board_size * self.cell_size
)
self.canvas.pack()
self.canvas.bind("<Button-1>", self.on_click)
self.init_board() # Initialise le plateau
self.draw_board() # Dessine l'échiquier
4️⃣ Initialiser le Plateau
Les pièces sont placées dans les 3 premières et dernières rangées du plateau, mais seulement sur les cases foncées. Pour cela, on remplit le tableau self.board
avec des pièces blanches et noires.
Code :
def init_board(self):
self.board = [["" for _ in range(self.board_size)] for _ in range(self.board_size)]
for row in range(self.board_size):
for col in range(self.board_size):
if (row + col) % 2 == 1: # Cases foncées
if row < 3:
self.board[row][col] = "black" # Pièces noires
elif row > 4:
self.board[row][col] = "white" # Pièces blanches
5️⃣ Dessiner l’Échiquier et les Pièces
Pour chaque case, on dessine un rectangle (clair ou foncé) et, si une pièce est présente, un cercle coloré.
Code :
def draw_board(self):
self.canvas.delete("all") # Efface tout
for row in range(self.board_size):
for col in range(self.board_size):
x1 = col * self.cell_size
y1 = row * self.cell_size
x2 = x1 + self.cell_size
y2 = y1 + self.cell_size
fill_color = "white" if (row + col) % 2 == 0 else "gray"
self.canvas.create_rectangle(x1, y1, x2, y2, fill=fill_color)
piece = self.board[row][col]
if piece:
color = "white" if piece.startswith("white") else "black"
outline = "gold" if "king" in piece else "blue"
self.canvas.create_oval(
x1 + 10, y1 + 10, x2 - 10, y2 - 10, fill=color, outline=outline, width=2
)
6️⃣ Gérer les Clics
Quand un joueur clique sur une case, on doit :
- Sélectionner une pièce.
- Déplacer la pièce si le clic suivant est une case valide.
Code :
def on_click(self, event):
col = event.x // self.cell_size
row = event.y // self.cell_size
if self.selected_piece:
self.move_piece(row, col)
elif self.board[row][col].startswith(self.current_turn):
self.selected_piece = (row, col)
7️⃣ Valider et Effectuer les Mouvements
Ajoutons une méthode pour vérifier si un mouvement est valide et pour déplacer une pièce.
Code :
def move_piece(self, new_row, new_col):
old_row, old_col = self.selected_piece
if self.is_valid_move(old_row, old_col, new_row, new_col):
piece = self.board[old_row][old_col]
self.board[new_row][new_col] = piece
self.board[old_row][old_col] = ""
if abs(new_row - old_row) > 1: # Capture
middle_row = (old_row + new_row) // 2
middle_col = (old_col + new_col) // 2
self.board[middle_row][middle_col] = ""
self.promote_to_king(new_row, new_col)
self.switch_turn()
else:
messagebox.showerror("Erreur", "Mouvement non valide !")
self.selected_piece = None
self.draw_board()

8️⃣ Tester le Jeu
Ajoute ce bloc à la fin du fichier pour lancer le jeu :
if __name__ == "__main__":
root = tk.Tk()
game = CheckersGame(root)
root.mainloop()

🎉 Bravo, Tu As Créé Ton Jeu de Dames !
À toi de jouer maintenant ! 😍 N’hésite pas à personnaliser l’apparence ou ajouter des règles supplémentaires (comme les Dames 👑). Et surtout, amuse-toi ! 😊 Tu peux télécharger le code source du projet sur notre dépôt GitHub.
merci pour ce tuto, sauf que le code poster ici est legerement different que github