bollet.c
11 months ago
1 changed files with 0 additions and 118 deletions
@ -1,118 +0,0 @@ |
|||
import tkinter as tk |
|||
import time |
|||
from random import shuffle |
|||
from File import File_chaine as File |
|||
from Pile import Pile_chaine as Pile |
|||
|
|||
|
|||
class Carte: |
|||
"""classe d'une carte de valeur 'valeur' et de couleur 'couleur'""" |
|||
def __init__(self, valeur, couleur): |
|||
"""création de la carte""" |
|||
self.valeur = valeur |
|||
self.couleur = couleur |
|||
|
|||
def compare(self, other): |
|||
"""comparaison entre deux cartes""" |
|||
if self.valeur > other.valeur: |
|||
return 1 |
|||
elif self.valeur < other.valeur: |
|||
return -1 |
|||
return 0 |
|||
|
|||
def __repr__(self): |
|||
"""affichage de la carte""" |
|||
if self.valeur <= 10: |
|||
tmp = str(self.valeur) |
|||
else: |
|||
tmp = ["Valet","Dame","Roi"][self.valeur-11] |
|||
|
|||
return tmp + " de " + self.couleur |
|||
|
|||
class Jeux: |
|||
"""classe d'un jeu""" |
|||
def __init__(self, nb_cartes): |
|||
"""initialisation du jeu""" |
|||
self.paquet = [] |
|||
self.nb_cartes = nb_cartes |
|||
couleurs = ["Coeur", "Carreaux", "Trèfle", "Pique"] |
|||
if self.nb_cartes == 32: |
|||
valeurs = [1, 7, 8, 9, 10, 11, 12, 13] |
|||
else: |
|||
valeurs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] |
|||
|
|||
if self.nb_cartes > 52: |
|||
raise ValueError("Nombre de cartes invalide") |
|||
|
|||
for couleur in couleurs: |
|||
for valeur in valeurs: |
|||
self.paquet.append(Carte(valeur, couleur)) |
|||
shuffle(self.paquet) |
|||
if self.nb_cartes != 32 and self.nb_cartes != 52: |
|||
for i in range(52 - self.nb_cartes): |
|||
self.paquet.pop() |
|||
|
|||
print(self.paquet) |
|||
print(len(self.paquet)) |
|||
|
|||
def distribue(self): |
|||
"""distribution des cartes""" |
|||
f1 = File() |
|||
f2 = File() |
|||
for i in range(self.nb_cartes//2): |
|||
f1.enfiler(self.paquet.pop()) |
|||
f2.enfiler(self.paquet.pop()) |
|||
return f1, f2 |
|||
|
|||
#une fonction utile |
|||
def vider_dans(mise_1, mise_2,paquet_joueur): |
|||
"""ajoute les cartes des mises dans le paquet du joueur (et supprime les mises)""" |
|||
while not mise_1.est_vide(): |
|||
paquet_joueur.enfiler(mise_1.depiler()) |
|||
while not mise_2.est_vide(): |
|||
paquet_joueur.enfiler(mise_2.depiler()) |
|||
|
|||
|
|||
def main(): |
|||
"""fonction principale""" |
|||
jeu = Jeux(6) |
|||
(paquet_joueur1, paquet_joueur2) = jeu.distribue() |
|||
mise_joueur1 = Pile() |
|||
mise_joueur2 = Pile() |
|||
|
|||
|
|||
compteur_tours = 0 |
|||
while not paquet_joueur1.est_vide() and not paquet_joueur2.est_vide(): |
|||
print("joueur1",paquet_joueur1) |
|||
print("joueur2",paquet_joueur2) |
|||
if mise_joueur1.est_vide() or mise_joueur1.est_vide(): |
|||
mise_joueur1.empiler(paquet_joueur1.defiler()) |
|||
mise_joueur2.empiler(paquet_joueur2.defiler()) |
|||
|
|||
if mise_joueur1.sommet().compare(mise_joueur2.sommet()) == 1: |
|||
vider_dans(mise_joueur1, mise_joueur2, paquet_joueur1) |
|||
elif mise_joueur1.sommet().compare(mise_joueur2.sommet()) == -1: |
|||
vider_dans(mise_joueur1, mise_joueur2, paquet_joueur2) |
|||
else: |
|||
if paquet_joueur1.taille() <= 1: |
|||
print("joueur1 a perdu, joueur2 a gagné") |
|||
return |
|||
elif paquet_joueur2.taille() <= 1: |
|||
print("joueur2 a perdu, joueur1 a gagné") |
|||
return |
|||
|
|||
for i in range(2): |
|||
mise_joueur1.empiler(paquet_joueur1.defiler()) |
|||
mise_joueur2.empiler(paquet_joueur2.defiler()) |
|||
|
|||
compteur_tours += 1 |
|||
if compteur_tours == 200: |
|||
print("aaaaaaaaaa c'est long") |
|||
return |
|||
|
|||
if paquet_joueur1.est_vide(): |
|||
print("joueur1 a perdu, joueur2 a gagné") |
|||
elif paquet_joueur2.est_vide(): |
|||
print("joueur2 a perdu, joueur1 a gagné") |
|||
if __name__ == "__main__": |
|||
main() |
Loading…
Reference in new issue