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.

83 lines
2.5 KiB

from tkinter import *
from File import *
from random import shuffle
class Carte:
def __init__(self, valeur, couleur):
self.valeur = valeur
self.couleur = couleur
def compare(self, other):
if self.valeur > other.valeur:
return 0
elif self.valeur < other.valeur:
return 1
return 2
class Jeux:
def __init__ (self, nbr_cartes):
self.nb = nbr_cartes
if self.nb != 32 and self.nb != 52:
raise ValueError("Choisissez 32 ou 52 cartes")
self.paquet = []
for i in couleurs:
if self.nb == 52:
for j in numeros:
self.paquet.append(Carte(j, i))
else:
for j in numeros[5:]:
self.paquet.append(Carte(j, i))
shuffle(self.paquet)
def distribue(self):
while len(self.paquet) > 0:
for player in players:
player.enfiler(self.paquet.pop(0))
def click(event):
print("ok")
window = Tk()
window.title("Bataille")
window.geometry(f"700x400+300+200")
canvas = Canvas(window, width = 650, height = 300, background = "#fff")
canvas.place(x = 25, y = 50)
player1_pack = canvas.create_rectangle(50, 100, 150, 250, fill = "#f77")
player1_carte = canvas.create_rectangle(200, 75, 300, 225, fill = "#fff")
player2_pack = canvas.create_rectangle(500, 100, 600, 250, fill = "#f77")
player2_carte = canvas.create_rectangle(350, 75, 450, 225, fill = "#fff")
canvas.bind("<Button 1>", click)
couleurs = ["Coeur", "Pique", "Carreaux", "Trèfle"]
numeros = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
jeu = Jeux(52)
players = [File_chaine(), File_chaine()]
next_game = [[], []]
jeu.distribue()
while not (players[0].est_vide() and len(next_game[0])!=0 or players[1].est_vide() and len(next_game[1])!=0):
cartes_tour = []
cartes_tour.extend([players[0].defiler(), players[1].defiler()])
winner = cartes_tour[-2].compare(cartes_tour[-1])
if winner == 2:
pass
else:
next_game[winner].extend(cartes_tour)
for player_id in range(2):
if players[player_id].est_vide() and len(next_game[player_id])==0:
shuffle(next_game[player_id])
for i in next_game[player_id]:
players[player_id].enfiler(i)
next_game[player_id] = []
if players[0].est_vide():
print("Le joueur 1 a perdu", players[0].taille(), players[1].taille())
elif players[1].est_vide():
print("Le joueur 2 a perdu")