From 6937608ffcd52e0cbbcf79dccdad4fad78e11bb0 Mon Sep 17 00:00:00 2001 From: "corentin.bollet" Date: Fri, 15 Dec 2023 15:10:36 +0100 Subject: [PATCH] le programme principal fonctionne --- Projetbataille0.py | 86 +++++++++++++++++++++------------------------- 1 file changed, 39 insertions(+), 47 deletions(-) diff --git a/Projetbataille0.py b/Projetbataille0.py index 63a5743..6d0a512 100644 --- a/Projetbataille0.py +++ b/Projetbataille0.py @@ -5,15 +5,12 @@ 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 - - #________ + self.couleur = couleur def compare(self, other): """comparaison entre deux cartes""" @@ -31,7 +28,7 @@ class Carte: tmp = ["Valet","Dame","Roi"][self.valeur-11] return tmp + " de " + self.couleur -#__________ + class Jeux: """classe d'un jeu""" def __init__(self, nb_cartes): @@ -41,35 +38,33 @@ class Jeux: couleurs = ["Coeur", "Carreaux", "Trèfle", "Pique"] if self.nb_cartes == 32: valeurs = [1, 7, 8, 9, 10, 11, 12, 13] - elif self.nb_cartes == 52: - valeurs = [1, 2, 3, 4, 5, 6, 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() - if self.nb_cartes == 52: - for i in range(26): - f1.enfiler(self.paquet.pop()) - f2.enfiler(self.paquet.pop()) - else: - for i in range(16): - f1.enfiler(self.paquet.pop()) - f2.enfiler(self.paquet.pop()) + for i in range(self.nb_cartes//2): + f1.enfiler(self.paquet.pop()) + f2.enfiler(self.paquet.pop()) return f1, f2 -#______________________________________ -nb_cartes = 42 #52 -partie = Jeux(32) - +#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(): @@ -80,50 +75,47 @@ def vider_dans(mise_1, mise_2,paquet_joueur): def main(): """fonction principale""" - jeu = Jeux(32) + jeu = Jeux(2) (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_joueur1.sommet()) == 1: + if mise_joueur1.sommet().compare(mise_joueur2.sommet()) == 1: vider_dans(mise_joueur1, mise_joueur2, paquet_joueur1) - if paquet_joueur1.tete().compare(paquet_joueur2.tete()) == -1: + elif mise_joueur1.sommet().compare(mise_joueur2.sommet()) == -1: vider_dans(mise_joueur1, mise_joueur2, paquet_joueur2) else: + print("est vide ? (1)",paquet_joueur1.est_vide()) + print("est vide ? (2)",paquet_joueur2.est_vide()) + + if paquet_joueur1.est_vide(): + print("joueur1 est nul.") + return + else: + print("joueur2 est nul.") + return + for i in range(2): mise_joueur1.empiler(paquet_joueur1.defiler()) mise_joueur2.empiler(paquet_joueur2.defiler()) - print("joueur1",paquet_joueur1) - print("joueur2",paquet_joueur2) + + compteur_tours += 1 + if compteur_tours == 200: + print("aaaaaaaaaa c'est long") + return if paquet_joueur1.est_vide(): print("joueur1 est nul.") else: print("joueur2 est nul.") if __name__ == "__main__": - main() -#result = compare() -#if result == -1: - -#if result == 1: - - -#if result == 0: - - - -#______________________________________ - -#if f1.est_vide: - #print(f"victoire du joueur 1") - -#elif f2.est_vide: - #print(f"victoire du joueur 2") - + main() \ No newline at end of file