class partieBataille: def __init__(self, nom1, prenom1, nom2, prenom2): self.nom1 = nom1 self.prenom1 = prenom1 self.nom2 = nom2 self.prenom2 = prenom2 self.__joueur1 = Joueur(nom1, prenom1) self.__joueur2 = Joueur(nom2, prenom2) self.__jeuDeCarte = jeuCarteClassique() def distribuer(self): while True: self.__joueur1.ajouter(self.__jeuDeCarte.tirerCarte()) self.__joueur2.ajouter(self.__jeuDeCarte.tirerCarte()) tableauArchive = [] def bataille(self): if len(self.__joueur1.paquet.cartes) > 1: self.tableauArchive.append(self.__joueur1.tirer()) cJoueur1 = self.__joueur1.tirer() else: self.finPartie() if len(self.__joueur2.paquet.cartes) > 1: self.tableauArchive.append(self.__joueur2.tirer()) cJoueur2 = self.__joueur2.tirer() else: self.finPartie() print(cJoueur1, 'CONTRE\r\n', cJoueur2) if cJoueur1.valeur < cJoueur2.valeur: self.tableauArchive.append(cJoueur1) self.tableauArchive.append(cJoueur2) self.__joueur2.victoires += 1 self.__joueur1.defaites += 1 print(self.__joueur2.prenom, ' gagne et récupère les cartes dans son paquet !') for i in range(len(self.tableauArchive)): self.__joueur2.ajouter(self.tableauArchive.pop(0)) self.main() elif cJoueur1.valeur > cJoueur2.valeur: self.tableauArchive.append(cJoueur1) self.tableauArchive.append(cJoueur2) self.__joueur1.victoires += 1 self.__joueur2.defaites += 1 print(self.__joueur1.prenom, ' gagne et récupère les cartes dans son paquet !') for i in range(len(self.tableauArchive)): self.__joueur1.ajouter(self.tableauArchive.pop(0)) self.main() else: print("BATAAAAAAAAAILLE !!!") self.bataille() def melanger(self): jeuCarteClassique.melange(self.__jeuDeCarte) def demarrerPartie(self): try: self.melanger() self.distribuer() except IndexError as err: while True: self.main() def finPartie(self): if self.__joueur1.defaites < self.__joueur2.defaites: print(self.__joueur1.prenom, 'a gagné cette partie!') elif self.__joueur2.defaites < self.__joueur1.defaites: print(self.__joueur2.prenom, 'a gagné cette partie!') else: print("Egalité, chose rare dans la bataille.") exit(1) restart = input( "Tape 1 pour rejouer ! Sinon tape n'importe quelle touche !") if restart == 1: self.demarrerPartie() else: exit(1) def main(self): while len(self.__joueur1.paquet.cartes) != 0 or len( self.__joueur2.paquet.cartes) != 0: if len(self.__joueur1.paquet.cartes) != 0: cJoueur1 = self.__joueur1.tirer() else: self.finPartie() if len(self.__joueur2.paquet.cartes) != 0: cJoueur2 = self.__joueur2.tirer() else: self.finPartie() print(cJoueur1, '\r CONTRE\n\r', cJoueur2, '\r ') if cJoueur1.valeur < cJoueur2.valeur: self.__joueur2.ajouter(cJoueur1) self.__joueur2.ajouter(cJoueur2) self.__joueur2.victoires += 1 self.__joueur1.defaites += 1 print(self.__joueur2.prenom, 'gagne et récupère les cartes dans son paquet !') print(len(self.__joueur1.paquet.cartes)) print(len(self.__joueur2.paquet.cartes)) elif cJoueur1.valeur > cJoueur2.valeur: self.__joueur1.ajouter(cJoueur1) self.__joueur1.ajouter(cJoueur2) self.__joueur1.victoires += 1 self.__joueur2.defaites += 1 print(self.__joueur1.prenom, 'gagne et récupère les cartes dans son paquet !') print(len(self.__joueur1.paquet.cartes)) print(len(self.__joueur2.paquet.cartes)) else: print("BATAAAAAAAAAILLE !!!") self.bataille() nextRound = input("") if nextRound == "1": self.finPartie() else: if self.__joueur1.paquet.cartes == 0 or self.__joueur2.paquet.cartes == 0: exit(1) print("gyjugjvfgh") self.finPartie() # GETSETTEUR SPACE ! Yoloooo def __getJoueur1(self): return self.__joueur1 def __setJoueur1(self, joueur1): self.__joueur1 = joueur1 joueur1 = property(__getJoueur1, __setJoueur1) def __getJoueur2(self): return self.__joueur2 def __setJoueur2(self, joueur2): self.__joueur2 = joueur2 joueur2 = property(__getJoueur2, __setJoueur2) def __getJeuDeCarte(self): return self.__jeuDeCarte def __setJeuDeCarte(self, jeuDeCarte): self.__jeuDeCarte = jeuDeCarte jeuDeCarte = property(__getJeuDeCarte, __setJeuDeCarte)
class PartieBataille: cJ1 = [] cJ2 = [] def __init__(self, nom1, prenom1, nom2, prenom2): self.__nom1 = nom1 self.__prenom1 = prenom1 self.__nom2 = nom2 self.__prenom2 = prenom2 self.__jeuDeCartes = JeuCartesClassique() self.__J1 = Joueur(nom1, prenom1) self.__J2 = Joueur(nom2, prenom2) def distribuer(self): while True: self.__J1.ajouter(self.__jeuDeCartes.tirer()) self.__J2.ajouter(self.__jeuDeCartes.tirer()) def melanger(self): self.__jeuDeCartes.melanger() def demarrerPartie(self): try: self.melanger() self.distribuer() except IndexError as err: print(err) while True: self.main() def bataille(self): c2J1 = self.__J1.tirer() c2J2 = self.__J2.tirer() c3J1 = self.__J1.tirer() c3J2 = self.__J2.tirer() print(c3J1, "\r vs ", c3J2, "\r") if c3J1.valeur < c3J2.valeur: self.__J2.ajouter(c3J1) self.__J2.ajouter(c3J2) self.__J2.ajouter(c2J1) self.__J2.ajouter(c2J2) print(self.__J2.nom, self.__J2.prenom, " gagne la bataille et récupère les cartes\n") self.__J2.victoire += 1 self.__J1.defaite += 1 for i in range(len(self.cJ2)): self.__J2.ajouter(self.cJ2.pop(0)) self.__J2.ajouter(self.cJ1.pop(0)) print("Nombres cartes Joueur 1 : ", len(self.__J1.paquet.cartes)) print("Nombres cartes Joueur 2 : ", len(self.__J2.paquet.cartes)) input("next\n") self.main() elif c3J1.valeur > c3J2.valeur: self.__J1.ajouter(c3J1) self.__J1.ajouter(c3J2) self.__J1.ajouter(c2J1) self.__J1.ajouter(c2J2) print(self.__J1.nom, self.__J1.prenom, " gagne la bataille et récupère les cartes\n") self.__J1.victoire += 1 self.__J2.defaite += 1 for i in range(len(self.cJ2)): self.__J1.ajouter(self.cJ2.pop(0)) self.__J1.ajouter(self.cJ1.pop(0)) print("Nombres cartes Joueur 1 : ", len(self.__J1.paquet.cartes)) print("Nombres cartes Joueur 2 : ", len(self.__J2.paquet.cartes)) input("next\n") self.main() else: print("Bataille\n") self.cJ1.append(c2J1) self.cJ1.append(c3J1) self.cJ2.append(c2J2) self.cJ1.append(c3J2) self.bataille() def finPartie(self): ScoreVJ1 = self.__J1.victoire ScoreVJ2 = self.__J2.victoire ScoreDJ1 = self.__J1.defaite ScoreDJ2 = self.__J2.defaite print("Le score de la partie est : ", ScoreVJ1, ScoreDJ1, " pour le joueur 1\n", ScoreVJ2, ScoreDJ2, " pour le joueur 2\n") exit(1) def main(self): while len(self.__J1.paquet.cartes) != 0 or len( self.__J2.paquet.cartes) != 0: if len(self.__J1.paquet.cartes) != 0: cJ1 = self.__J1.tirer() else: print(self.__J1.nom, "a perdu") self.finPartie() if len(self.__J2.paquet.cartes) != 0: cJ2 = self.__J2.tirer() else: print(self.__J2.nom, "a perdu") self.finPartie() print(cJ1, "\r vs ", cJ2, "\r ") if cJ1.valeur < cJ2.valeur: self.__J2.ajouter(cJ1) self.__J2.ajouter(cJ2) print(self.__J2.nom, self.__J2.prenom, " gagne et récupère les cartes\n") self.__J2.victoire += 1 self.__J1.defaite += 1 print("Nombres cartes Joueur 1 : ", len(self.__J1.paquet.cartes)) print("Nombres cartes Joueur 2 : ", len(self.__J2.paquet.cartes)) elif cJ1.valeur > cJ2.valeur: self.__J1.ajouter(cJ1) self.__J1.ajouter(cJ2) print(self.__J1.nom, self.__J1.prenom, " gagne et récupère les cartes\n") self.__J1.victoire += 1 self.__J2.defaite += 1 print("Nombres cartes Joueur 1 : ", len(self.__J1.paquet.cartes)) print("Nombres cartes Joueur 2 : ", len(self.__J2.paquet.cartes)) else: print("Bataille\n") self.bataille() input("next\n") self.finPartie()