import tkinter as tk from Jeux import Jeux class Bataille: def __init__(self): self.jeu = Jeux(32) self.joueur, self.ordi = self.jeu.distribue() self.fenetre = tk.Tk() self.fenetre.title("Jeu de la Bataille") self.fenetre.geometry("1500x800") self.fenetre.configure(bg="green") tk.Label( self.fenetre, text="JEU DE LA BATAILLE", font=("Arial", 25, "bold"), bg="green" ).pack(pady=10) self.label_joueur = tk.Label( self.fenetre, text="Carte du joueur : ", font=("Arial", 16), bg="green" ) self.label_joueur.pack(pady=10) self.label_ordi = tk.Label( self.fenetre, text="Carte de l'ordinateur : ", font=("Arial", 16), bg="green" ) self.label_ordi.pack(pady=10) self.label_info = tk.Label( self.fenetre, text="Clique sur 'Jouer'", font=("Arial", 14), bg="green" ) self.label_info.pack(pady=15) self.label_score = tk.Label( self.fenetre, text=f"Vos cartes : {self.joueur.taille()} | Cartes ordinateur : {self.ordi.taille()}", font=("Arial", 14), bg="green" ) self.label_score.pack(pady=10) tk.Label( self.fenetre, text= "À chaque tour de jeu, chaque joueur joue la carte supérieure de son paquet.\n" "Le joueur ayant la carte de plus grande valeur récupère les deux cartes.\n" "En cas d’égalité : bataille, le gagnant récupère toutes les cartes jouées.\n" "Le joueur sans carte perd la partie.", bg="red", font=("Arial", 12), width=120, height=6 ).pack(pady=15) tk.Button( self.fenetre, text="Jouer", font=("Arial", 14), width=15, command=self.jouer_tour ).pack(pady=10) tk.Button( self.fenetre, text="Quitter", font=("Arial", 11), fg="white", bg="black", width=12, command=self.fenetre.destroy ).pack(pady=10) self.fenetre.mainloop() def mettre_a_jour_score(self): self.label_score.config( text=f"Vos cartes : {self.joueur.taille()} | Cartes ordinateur : {self.ordi.taille()}" ) def jouer_tour(self): pile = [] if self.joueur.est_vide(): self.label_info.config(text="Vous avez perdu") return if self.ordi.est_vide(): self.label_info.config(text="Vous avez gagné") return c1 = self.joueur.defiler() c2 = self.ordi.defiler() pile.extend([c1, c2]) self.label_joueur.config(text=f"Carte du joueur : {c1}") self.label_ordi.config(text=f"Carte de l'ordinateur : {c2}") res = c1.compare(c2) while res == 0: self.label_info.config(text="BATAILLE !") if not self.joueur.est_vide(): pile.append(self.joueur.defiler()) if not self.ordi.est_vide(): pile.append(self.ordi.defiler()) # Vérifie que les joueurs ont encore une carte pour comparer if self.joueur.est_vide(): self.label_info.config(text="Vous avez perdu") self.mettre_a_jour_score() return if self.ordi.est_vide(): self.label_info.config(text="Vous avez gagné") self.mettre_a_jour_score() return # Carte face visible c1 = self.joueur.defiler() c2 = self.ordi.defiler() pile.extend([c1, c2]) self.label_joueur.config(text=f"Carte du joueur : {c1}") self.label_ordi.config(text=f"Carte de l'ordinateur : {c2}") res = c1.compare(c2) # Distribue la pile au gagnant if res == 1: for carte in pile: self.joueur.enfiler(carte) self.label_info.config(text=f"Vous gagnez le pli avec {len(pile)} cartes") else: for carte in pile: self.ordi.enfiler(carte) self.label_info.config(text=f"L'ordinateur gagne le pli avec {len(pile)} cartes") self.mettre_a_jour_score() Bataille()