|
@ -8,7 +8,10 @@ class Carte: |
|
|
def __init__(self, couleur, valeur, img_path): |
|
|
def __init__(self, couleur, valeur, img_path): |
|
|
self.valeur = valeur |
|
|
self.valeur = valeur |
|
|
self.couleur = couleur |
|
|
self.couleur = couleur |
|
|
self.image = img_path |
|
|
print(img_path) |
|
|
|
|
|
image = Image.open(img_path) |
|
|
|
|
|
self.image = ImageTk.PhotoImage((image)) |
|
|
|
|
|
# self.image = img_path |
|
|
|
|
|
|
|
|
def compare(self, other): |
|
|
def compare(self, other): |
|
|
self.other = other.valeur |
|
|
self.other = other.valeur |
|
@ -29,7 +32,7 @@ class Jeux: |
|
|
self.paquet = [] |
|
|
self.paquet = [] |
|
|
self.nombre_carte = nb |
|
|
self.nombre_carte = nb |
|
|
if self.nombre_carte != 32 and self.nombre_carte != 52: |
|
|
if self.nombre_carte != 32 and self.nombre_carte != 52: |
|
|
raise ValueError("Saissisez 32 ou 54 cartes") |
|
|
raise ValueError("Saissisez 32 ou 52 cartes") |
|
|
|
|
|
|
|
|
# Création du paquet de carte en fonction du nombre de carte |
|
|
# Création du paquet de carte en fonction du nombre de carte |
|
|
conn = sqlite3.connect('bdd.db') |
|
|
conn = sqlite3.connect('bdd.db') |
|
@ -43,63 +46,78 @@ class Jeux: |
|
|
self.paquet.append(Carte(data[i][0], data[i][1], data[i][3])) |
|
|
self.paquet.append(Carte(data[i][0], data[i][1], data[i][3])) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def distribute(self, joueur) -> File_chaine: |
|
|
def distribute(self) : #-> File_chaine: |
|
|
for i in range(nbcarte): |
|
|
for i in range(nbcarte): |
|
|
mcarte1 = paquet - 1 #enlever moitie val |
|
|
|
|
|
mcarte2 = paquet # le reste du paquet |
|
|
while not paquet.taille() == paquet.taille() // 2 : |
|
|
|
|
|
paquet.defiler() |
|
|
|
|
|
# taille |
|
|
|
|
|
mcarte2 = paquet # le reste du paquet |
|
|
if joueur == j1 : |
|
|
if joueur == j1 : |
|
|
return File_chaine(mcarte1) |
|
|
return File_chaine(mcarte1) |
|
|
elif joueur == j2 : |
|
|
elif joueur == j2 : |
|
|
return File_chaine(mcarte2) |
|
|
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): |
|
|
def jeu(self): |
|
|
j1 = distribute(1) |
|
|
j1 = distribute() |
|
|
j2 = distribute(2) |
|
|
j2 = distribute() |
|
|
while not j1.estvide() or j2.estvide() : |
|
|
while not j1.estvide() or j2.estvide() : |
|
|
|
|
|
|
|
|
j1tete = j1.tete() |
|
|
#j1tete = j1.tete() |
|
|
j2tete = j2.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 j1tete.valeur() > j2tete.valeur() : |
|
|
if j1.compare(j2) == 1 :#j1.tete().compare(j2.tete()) == 1 : |
|
|
j1.enfiler(j1tete) |
|
|
j1.enfiler(j1.defiler()) |
|
|
j1.enfiler(j2tete) |
|
|
j1.enfiler(j2.defiler()) |
|
|
|
|
|
|
|
|
elif j1tete.valeur() < j2tete.valeur() : |
|
|
elif j1.compare(j2) == -1 :#j1.tete().compare(j2.tete()) == -1 : |
|
|
j2.enfiler(j1tete) |
|
|
j2.enfiler(j1.defiler()) |
|
|
j2.enfiler(j2tete) |
|
|
j2.enfiler(j2.defiler()) |
|
|
|
|
|
|
|
|
|
|
|
j1.defiler() |
|
|
|
|
|
j2.defiler() |
|
|
|
|
|
|
|
|
elif j1tete.valeur() == j2tete.valeur() : |
|
|
|
|
|
j1.depiler() |
|
|
|
|
|
j2.depiler() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if j1.estvide() == True : |
|
|
if j1.estvide() == True : |
|
|
# j1 a perdu |
|
|
# j1 a perdu donc j2 gagne toutes les cartes |
|
|
|
|
|
|
|
|
pass |
|
|
pass |
|
|
else: |
|
|
else: |
|
|
# j2 a perdu |
|
|
# j2 a perdu |
|
|
pass |
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Gui: |
|
|
class App: |
|
|
def __init__(self) -> None: |
|
|
def __init__(self) -> None: |
|
|
self.win = tk.Tk() |
|
|
self.win = tk.Tk() |
|
|
|
|
|
|
|
|
|
|
|
self.jeu = Jeux(32) |
|
|
self.images = [] |
|
|
self.images = [] |
|
|
image = Image.open('photo/5.png') |
|
|
|
|
|
test = ImageTk.PhotoImage((image)) |
|
|
|
|
|
self.images.append(tk.Label(image=test)) |
|
|
|
|
|
self.images[0].pack() |
|
|
|
|
|
|
|
|
|
|
|
# self.display_card(jeu.paquet[0]) |
|
|
self.display_card(self.jeu.paquet[12]) |
|
|
|
|
|
|
|
|
self.win.mainloop() |
|
|
self.win.mainloop() |
|
|
|
|
|
|
|
|
def display_card(self, carte :Carte) -> None: |
|
|
def display_card(self, carte :Carte) -> None: |
|
|
image = Image.open('photo/5.png') |
|
|
self.images.append(tk.Label(image=carte.image)) |
|
|
test = ImageTk.PhotoImage((image)) |
|
|
self.images[-1].pack() |
|
|
self.images.append(tk.Label(image=test)) |
|
|
|
|
|
self.images[0].pack() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
jeu = Jeux(32) |
|
|
gui = App() |
|
|
gui = Gui() |
|
|
|