from File import File_chaine import tkinter as tk from PIL import Image, ImageTk import sqlite3 class Carte: def __init__(self, couleur, valeur, img_path): self.valeur = valeur self.couleur = couleur print(img_path) image = Image.open(img_path) self.image = ImageTk.PhotoImage((image)) # self.image = img_path def compare(self, other): self.other = other.valeur if self.valeur > self.other : return 1 elif self.valeur < self.other : return -1 elif self.valeur == self.other : return 0 return None def __str__(self) -> str: return str(self.valeur) + ' de ' + self.couleur class Jeux: def __init__(self, nb) -> None: self.paquet = [] self.nombre_carte = nb if self.nombre_carte != 32 and self.nombre_carte != 52: raise ValueError("Saissisez 32 ou 52 cartes") # Création du paquet de carte en fonction du nombre de carte conn = sqlite3.connect('bdd.db') c = conn.cursor() if self.nombre_carte == 32: c.execute('SELECT * FROM Cartes WHERE belote=True') else: c.execute('SELECT * FROM Carte') data = c.fetchall() for i, carte in enumerate(data): self.paquet.append(Carte(data[i][0], data[i][1], data[i][3])) def distribute(self) : #-> File_chaine: for i in range(nbcarte): while not paquet.taille() == paquet.taille() // 2 : paquet.defiler() # taille mcarte2 = paquet # le reste du paquet if joueur == j1 : return File_chaine(mcarte1) elif joueur == j2 : return File_chaine(mcarte2) # reflexion sur repartition des cartes # for i in range(self.nombre_carte): # problème lien entre fonction et class # # while not paquet.taille() == paquet.taille() // 2 : # paquet.defiler() # # return paquet def jeu(self): j1 = distribute() j2 = distribute() while not j1.estvide() or j2.estvide() : #j1tete = j1.tete() #j2tete = j2.tete() while not j1.compare(j2) == 0 : #j1.tete().compare(j2.tete()) == 0 : # envers j1.enfiler(j1.defiler()) j2.enfiler(j2.defiler()) # endroit j1.enfiler(j1.defiler()) j2.enfiler(j2.defiler()) if j1.compare(j2) == 1 :#j1.tete().compare(j2.tete()) == 1 : j1.enfiler(j1.defiler()) j1.enfiler(j2.defiler()) elif j1.compare(j2) == -1 :#j1.tete().compare(j2.tete()) == -1 : j2.enfiler(j1.defiler()) j2.enfiler(j2.defiler()) j1.defiler() j2.defiler() if j1.estvide() == True : # j1 a perdu donc j2 gagne toutes les cartes pass else: # j2 a perdu pass class App: def __init__(self) -> None: self.win = tk.Tk() self.jeu = Jeux(32) self.images = [] self.display_card(self.jeu.paquet[12]) self.win.mainloop() def display_card(self, carte :Carte) -> None: self.images.append(tk.Label(image=carte.image)) self.images[-1].pack() gui = App()