from joueur import Joueur if __name__ == "__main__": print("Bienvenue au Poker d'As!") max_joueurs = 3 min_joueurs = 1 nb_joueurs = 0 while nb_joueurs < min_joueurs or nb_joueurs > max_joueurs: nb_joueurs = int(input("Combien êtes-vous de joueurs? ")) joueurs = [] for i in range(0, nb_joueurs): nom = input("Entrez le nom du joueur {:d} ".format(i + 1)) joueurs.append(Joueur(nom)) continuer = True while continuer: partie = Partie(joueurs) partie.jouer_partie() refaire_partie = "" while not ("oui" in refaire_partie or "non" in refaire_partie): refaire_partie = input( "Voulez-vous refaire une partie? (oui/non) ").lower() continuer = "oui" in refaire_partie for joueur in joueurs: print("{} a gagné {:d} parties, soit {:.0f}%.".format(joueur, joueur.nb_victoires, joueur.nb_victoires / joueur.nb_parties_jouees * 100))
class mon_interface(Tk): def __init__(self): super().__init__() self.wait = BooleanVar() self.wait.set(False) self.relance_de = [] self.title("Poker d'As") self.frame_player1 = LabelFrame(self, text="Player 1", padx=20, pady=20) self.frame_player1.grid(row=1, column=1) self.player1 = Label( self.frame_player1, text= "Combinaison:\nLancés_restants:\nRésultat:\nPourcentage de parties gagnées:\nParties jouées:", justify="left") self.player1.grid() self.frame_player2 = LabelFrame(self, text="Player 2", padx=20, pady=20) self.frame_player2.grid(row=2, column=1) self.player2 = Label( self.frame_player2, text= "Combinaison:\nLancés_restants:\nRésultat:\nPourcentage de parties gagnées:\nParties jouées:", justify="left") self.player2.grid() self.frame_player3 = LabelFrame(self, text="Player 3", padx=20, pady=20) self.frame_player3.grid(row=3, column=1) self.player3 = Label( self.frame_player3, text= "Combinaison:\nLancés_restants:\nRésultat:\nPourcentage de parties gagnées:\nParties jouées:", justify="left") self.player3.grid() self.joueur_interface = [(self.frame_player1, self.player1), (self.frame_player2, self.player2), (self.frame_player3, self.player3)] self.tour_a = Label(self, text="C'est au tour de ", justify="center") self.tour_a.grid(row=1, column=2, columnspan=5) self.lance_a_faire = Label(self, text="Tour: 0/0", justify="center") self.lance_a_faire.grid(row=1, column=7, columnspan=4) frame1 = Frame(self, borderwidth=2, relief=GROOVE).grid(row=2, column=2) self.de_1 = Button(frame1, text="0", width=3, height=2, command=lambda: self.buttom_action(0), padx=5, pady=5) self.de_1.grid(row=2, column=3) self.de_2 = Button(frame1, text="1", width=3, height=2, command=lambda: self.buttom_action(1), padx=5, pady=5) self.de_2.grid(row=2, column=4) self.de_3 = Button(frame1, text="2", width=3, height=2, command=lambda: self.buttom_action(2), padx=5, pady=5) self.de_3.grid(row=2, column=5) self.de_4 = Button(frame1, text="3", width=3, height=2, command=lambda: self.buttom_action(3), padx=5, pady=5) self.de_4.grid(row=2, column=6) self.de_5 = Button(frame1, text="4", width=3, height=2, command=lambda: self.buttom_action(4), padx=5, pady=5) self.de_5.grid(row=2, column=7) self.de_buttom = [ self.de_1, self.de_2, self.de_3, self.de_4, self.de_5 ] Button(self, text="Nouvelle Partie", command=self.nouvelle_partie).grid(row=4, column=6, columnspan=4) self.blancer = Button(self, command=self.relance, text="Garder/Lancer dés") self.blancer.grid(row=3, column=2, columnspan=3) self.tour = Button(self, text="Tour suivant", command=self.next_game) self.tour.grid(row=4, column=2, columnspan=3) self.sauvegarde = Button(self, text="Sauvegarde", command=self.fonction_sauvegarde) self.sauvegarde.grid(row=3, column=6, columnspan=4) self.menu = menu(self) def next_game(self): """ Permet de continuer une partie qui est terminée sans la redémarrer :return: aucun paramètre """ self.partie = Partie(self.list_obj_joueur, self) for i in self.de_buttom: i.config(state="normal") self.blancer.config(state="normal") self.tour.config(state="disabled") self.partie.jouer_partie() self.tour.config(state="normal") self.blancer.config(state="disabled") for i in self.de_buttom: i.config(state="disabled") def fonction_sauvegarde(self): """ Permet au bouton Sauvegarder d'accéder à la méthode de sauvegarde :return: aucun paramètre """ self.partie.sauvegarde() def relance(self): """ Permet au joueur de relancer les dés choisis par celui-ci, afin de changer son type de combinaison :return: aucun paramètre """ self.wait.set(False) self.update() def nouvelle_partie(self): """ Permet de changer les paramètres de la nouvelle partie et de la commencer ou terminer. :return: aucun paramètre """ self.menu = menu(self) def buttom_action(self, index): """ Permet d'afficher et de sélectionner les dés à partir des dés sélectionnés :param index: la position du bouton activé :return: aucun paramètre """ if index in self.relance_de: #print(index) #print(self.partie.joueur_actif.combinaison.des[index]) self.de_buttom[index].config( text=self.partie.joueur_actif.combinaison.des[index]) self.relance_de.remove(index) else: self.de_buttom[index].config(text="") self.relance_de.append(index)