You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

103 lines
3.0 KiB

2 years ago
from File import File_chaine
import tkinter as tk
from urllib.request import urlopen
import PIL
2 years ago
import sqlite3
2 years ago
class Carte:
2 years ago
def __init__(self, couleur, valeur, img_path):
2 years ago
self.valeur = valeur
self.couleur = couleur
2 years ago
self.image = img_path
2 years ago
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
2 years ago
def __str__(self) -> str:
return str(self.valeur) + ' de ' + self.couleur
2 years ago
class Jeux:
def __init__(self, nb):
paquet = []
2 years ago
self.nombre_carte = nb
if self.nombre_carte != 32 and self.nombre_carte != 52:
raise ValueError("Saissisez 32 ou 52 cartes")
2 years ago
2 years ago
# 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]))
2 years ago
2 years ago
def distribute(self, joueur) -> File_chaine:
2 years ago
for i in range(nbcarte):
mcarte1 = paquet - 1 #enlever moitie val
mcarte2 = paquet # le reste du paquet
if joueur == j1 :
return File_chaine(mcarte1)
elif joueur == j2 :
return File_chaine(mcarte2)
def jeu(self):
j1 = distribute(1)
j2 = distribute(2)
while not j1.estvide() or j2.estvide() :
#j1tete = j1.tete()
#j2tete = j2.tete()
2 years ago
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())
2 years ago
if j1.compare(j2) == 1 :#j1.tete().compare(j2.tete()) == 1 :
j1.enfiler(j1.defiler())
j1.enfiler(j2.defiler())
2 years ago
elif j1.compare(j2) == -1 :#j1.tete().compare(j2.tete()) == -1 :
j2.enfiler(j1.defiler())
j2.enfiler(j2.defiler())
2 years ago
j1.defiler()
j2.defiler()
2 years ago
if j1.estvide() == True :
# j1 a perdu donc j2 gagne toutes les cartes
2 years ago
pass
2 years ago
else:
# j2 a perdu
2 years ago
pass
class Gui:
def __init__(self) -> None:
self.win = tk.Tk()
2 years ago
# 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()
2 years ago
Gui()
Jeux(32)