|
|
@ -2,12 +2,14 @@ from File import File_chaine |
|
|
|
import tkinter as tk |
|
|
|
from urllib.request import urlopen |
|
|
|
import PIL |
|
|
|
import sqlite3 |
|
|
|
|
|
|
|
|
|
|
|
class Carte: |
|
|
|
def __init__(self,valeur, couleur): |
|
|
|
def __init__(self, couleur, valeur, img_path): |
|
|
|
self.valeur = valeur |
|
|
|
self.couleur = couleur |
|
|
|
self.image = img_path |
|
|
|
|
|
|
|
def compare(self, other): |
|
|
|
self.other = other.valeur |
|
|
@ -18,23 +20,31 @@ class Carte: |
|
|
|
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): |
|
|
|
paquet = [] |
|
|
|
nb = len(self.paquet) |
|
|
|
if nb == 32 : |
|
|
|
nbcarte = nb |
|
|
|
elif nb == 52 : |
|
|
|
nbcarte = nb |
|
|
|
else : |
|
|
|
raise ValueError("Saissisez 32 ou 52 cartes") |
|
|
|
|
|
|
|
for i in range(nbcarte): |
|
|
|
carte = Carte() |
|
|
|
paquet = [] |
|
|
|
self.nombre_carte = nb |
|
|
|
if self.nombre_carte != 32 and self.nombre_carte != 52: |
|
|
|
raise ValueError("Saissisez 32 ou 54 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): |
|
|
|
paquet.append(Carte(data[i][0], data[i][1], data[i][3])) |
|
|
|
|
|
|
|
|
|
|
|
def distribute(self, joueur): |
|
|
|
def distribute(self, joueur) -> File_chaine: |
|
|
|
for i in range(nbcarte): |
|
|
|
mcarte1 = paquet - 1 #enlever moitie val |
|
|
|
mcarte2 = paquet # le reste du paquet |
|
|
@ -51,7 +61,7 @@ class Jeux: |
|
|
|
#j1tete = j1.tete() |
|
|
|
#j2tete = j2.tete() |
|
|
|
|
|
|
|
while not Carte(j1.tete, j2.tete) == 0 : |
|
|
|
while not j1.compare(j2) == 0 : |
|
|
|
|
|
|
|
carte_envers = #id carte à l'envers dans la base de donnée |
|
|
|
j1.emfiler(carte_envers)#add carte à l'envers à j1 |
|
|
@ -59,13 +69,11 @@ class Jeux: |
|
|
|
j1.emfiler(j1.defiler()) |
|
|
|
j2.emfiler(j2.defiler()) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if Carte(j1.tete, j2.tete) == 1 : |
|
|
|
if j1.compare(j2) == 1 : |
|
|
|
j1.enfiler(j1.defiler()) |
|
|
|
j1.enfiler(j2.defiler()) |
|
|
|
|
|
|
|
elif Carte(j1.tete, j2.tete) == -1 : |
|
|
|
elif j1.compare(j2) == -1 : |
|
|
|
j2.enfiler(j1.defiler()) |
|
|
|
j2.enfiler(j2.defiler()) |
|
|
|
|
|
|
@ -73,25 +81,22 @@ class Jeux: |
|
|
|
j2.defiler() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if j1.estvide() == True : |
|
|
|
# j1 a perdu |
|
|
|
pass |
|
|
|
else: |
|
|
|
# j2 a perdu |
|
|
|
pass |
|
|
|
|
|
|
|
|
|
|
|
class Gui: |
|
|
|
def __init__(self) -> None: |
|
|
|
self.win = tk.Tk() |
|
|
|
src = 'http://www.iro.umontreal.ca/~reid/ift1146/E06/classic-cards/1.png' |
|
|
|
url = urlopen(src) |
|
|
|
raw_data = url.read() |
|
|
|
print(raw_data) |
|
|
|
url.close() |
|
|
|
b64_data = encodestring(raw_data) |
|
|
|
print(b64_data) |
|
|
|
image = tk.PhotoImage(b64_data) |
|
|
|
self.can = tk.Canvas(self.win, width=320, height=320) |
|
|
|
self.can.create_image(200, 200, image=image) |
|
|
|
self.can.pack() |
|
|
|
# image = tk.PhotoImage(b64_data) |
|
|
|
# self.can = tk.Canvas(self.win, width=320, height=320) |
|
|
|
# self.can.create_image(200, 200, image=image) |
|
|
|
# self.can.pack() |
|
|
|
self.win.mainloop() |
|
|
|
Gui() |
|
|
|
Jeux(32) |