Beispiel #1
0
    def __init__(self,
                 parent,
                 n_pixels_par_case,
                 store_filename='annulerdeplacement.txt'):
        # Nombre de lignes et de colonnes.
        self.n_lignes = 8
        self.n_colonnes = 8

        # Noms des lignes et des colonnes.
        self.chiffres_rangees = ['1', '2', '3', '4', '5', '6', '7', '8']
        self.lettres_colonnes = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

        # Nombre de pixels par case, variable.
        self.n_pixels_par_case = n_pixels_par_case

        # Appel du constructeur de la classe de base (Canvas).
        # La largeur et la hauteur sont déterminés en fonction du nombre de cases.
        super().__init__(parent,
                         width=self.n_lignes * n_pixels_par_case,
                         height=self.n_colonnes * self.n_pixels_par_case)

        # On fait en sorte que le redimensionnement du canvas redimensionne son contenu. Cet événement étant également
        # généré lors de la création de la fenêtre, nous n'avons pas à dessiner les cases et les pièces dans le
        # constructeur.
        self.bind('<Configure>', self.redimensionner)

        # Importation de Échequier et partie et Fenetre
        self.echequier = Echiquier()
        self.partie = Partie()
        self.fenetre = Fenetre

        # Dictionnaire contenant les pièces. Vous devinerez, si vous réutilisez cette classe dans votre TP4,
        # qu'il fandra adapter ce code pour plutôt utiliser la classe Echiquier.
        self.pieces = self.echequier.dictionnaire_pieces

        # Les variables nécessaires pour la fonction déplacement
        self.selectionner = 0
        self.case_source = ""
        self.case_cible = ""

        # Déterminer le gagnant
        self.gagnant_noir = False
        self.gagnant_blanc = False

        # Enregistrement des coups
        self.texte = ""

        # Fichier text annuler déplacement
        self.store_filename = os.path.join(BASE_DIR, store_filename)

        self.t = 0
Beispiel #2
0
    def __init__(self):
        # Le joueur débutant une partie d'échecs est le joueur blanc.
        self.joueur_actif = 'blanc'

        # Création d'une instance de la classe Echiquier, qui sera manipulée dans les méthodes de la classe.
        self.echiquier = Echiquier()

        #intialisation de deux listes qui permettront d'afficher les derniers déplacements
        self.listeDeplacements = []
        self.dernierDeplacement = []

        self.hist = []

        self.nom_fichier_sauvegarde = 'sauvegarde'
Beispiel #3
0
    def __init__(self, parent, n_pixels_par_case):
        # Nombre de lignes et de colonnes.
        self.n_lignes = 8
        self.n_colonnes = 8

        # Noms des lignes et des colonnes.
        self.chiffres_rangees = ['1', '2', '3', '4', '5', '6', '7', '8']
        self.lettres_colonnes = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h']

        # Nombre de pixels par case, variable.
        self.n_pixels_par_case = n_pixels_par_case

        # Appel du constructeur de la classe de base (Canvas).
        # La largeur et la hauteur sont déterminées en fonction du nombre de cases.
        super().__init__(parent,
                         width=self.n_lignes * n_pixels_par_case,
                         height=self.n_colonnes * self.n_pixels_par_case)

        # On fait en sorte que le redimensionnement du canvas redimensionne son contenu. Cet événement étant également
        # généré lors de la création de la fenêtre, nous n'avons pas à dessiner les cases et les pièces dans le
        # constructeur.
        self.echiquier = Echiquier()
        self.echiquier.initialiser_echiquier_depart()
        self.bind('<Configure>', self.redimensionner)
Beispiel #4
0
    def __init__(self):
        # Le joueur débutant une partie d'échecs est le joueur blanc.
        self.joueur_actif = 'blanc'

        # Création d'une instance de la classe Echiquier, qui sera manipulée dans les méthodes de la classe.
        self.echiquier = Echiquier()
Beispiel #5
0
    def __init__(self,
                 store_filename='partie1.bin',
                 store_filename2='partie2.bin',
                 store_filename3="deplacements1.txt",
                 store_filename4='deplacements2.txt'):
        super().__init__()

        self.title("Échiquier")

        # Background de la fenêtre.
        self.config(bg="AntiqueWhite1")

        # La position sélectionnée.
        self.position_selectionnee = None

        # Truc pour le redimensionnement automatique des éléments de la fenêtre.
        self.grid_columnconfigure(0, weight=1)
        self.grid_rowconfigure(0, weight=1)

        # Création du canvas échiquier.
        self.canvas_echiquier = CanvasEchiquier(self, 60)
        self.canvas_echiquier.grid(sticky=NSEW)

        # Ajout d'une étiquette d'information.
        self.messages = Label(self)
        self.messages.grid()

        # Ajout d'un message box
        self.message_alerte = messagebox

        # On lie un clic sur le CanvasEchiquier à une méthode.
        self.canvas_echiquier.bind('<Button-1>', self.canvas_echiquier.jouer)

        # Les variables nécessaires pour la fonction déplacement
        self.selectionner = 0
        self.case_source = ""
        self.case_cible = ""
        self.echiquier = Echiquier()

        # Frame unique pour les autres fonctions
        self.cadre_fonctions = Frame(self, relief="groove")
        self.cadre_fonctions.grid(row=0, column=1, padx=10, pady=10, sticky=S)
        self.cadre_fonctions.config(bg="AntiqueWhite1")
        self.cadre_fonctions_partie = Frame(self, relief="groove")
        self.cadre_fonctions_partie.config(bg="AntiqueWhite1")
        self.cadre_fonctions_partie.grid(row=0,
                                         column=1,
                                         padx=10,
                                         pady=10,
                                         sticky=N)

        # On importe les fonctions de parties
        self.partie = Partie()

        # L'emplacement du file
        self.store_filename = os.path.join(BASE_DIR, store_filename)
        self.store_filename2 = os.path.join(BASE_DIR, store_filename2)
        self.store_filename3 = os.path.join(BASE_DIR, store_filename3)
        self.store_filename4 = os.path.join(BASE_DIR, store_filename4)

        # Pour savoir nous sommes actuellement dans quel partie
        self.partie_actuel = 0

        # Label compteur
        self.m = 2
        self.s = 0
        self.compteur = StringVar()
        self.compteur.set(str(self.m) + ":" + str(self.s))
        self.lbl_compteur1 = Label(self.cadre_fonctions_partie,
                                   textvariable=self.compteur,
                                   bd=4,
                                   relief="groove",
                                   height=2).grid(row=0,
                                                  column=0,
                                                  sticky=NSEW,
                                                  padx=10,
                                                  pady=10)

        # Label joueur actif
        self.joueur_actif = StringVar()
        self.joueur_actif.set("C'est le tour du joueur  {}.".format(
            self.canvas_echiquier.partie.joueur_actif))
        self.lbl_joueur_actif = Label(self.cadre_fonctions_partie,
                                      textvariable=self.joueur_actif,
                                      relief="groove",
                                      bg="green",
                                      height=2).grid(row=1,
                                                     column=0,
                                                     sticky=NSEW,
                                                     padx=10,
                                                     pady=10)

        # Label Menu de partie
        self.lbl_options_de_partie = Label(self.cadre_fonctions_partie, text="Menu", relief="sunken",
                                           font="Arial 13 bold").grid \
            (row=2, column=0, sticky=NSEW, padx=10, pady=10)

        # Bouton Nouvelle Partie
        self.btn_nouvelle_partie = Button(
            self.cadre_fonctions_partie,
            text="Nouvelle partie",
            command=self.alerte_nouvelle_partie).grid(row=3,
                                                      column=0,
                                                      sticky=NSEW)

        # Bouton Fin du tour
        self.btn_fin_du_tour = Button(self.cadre_fonctions_partie,
                                      bg="yellow",
                                      text="Fin du tour",
                                      relief="groove",
                                      height=2,
                                      command=self.fin_du_tour).grid(
                                          row=2,
                                          column=0,
                                          sticky=NSEW,
                                          padx=10,
                                          pady=10)

        # Bouton Sauvegarder
        self.btn_Sauvegarder = Button(
            self.cadre_fonctions_partie,
            text="Sauvegarder la partie",
            command=self.alerte_sauvegarder_partie).grid(row=4,
                                                         column=0,
                                                         sticky=NSEW)

        # Bouton Charger
        self.btn_Charger = Button(self.cadre_fonctions_partie,
                                  text="Charger une partie",
                                  command=self.alerte_charger_partie).grid(
                                      row=5, column=0, sticky=NSEW)

        # Boutton Quitter
        self.btn_quitter = Button(self.cadre_fonctions_partie,
                                  text="Quitter",
                                  command=self.quit).grid(row=6,
                                                          column=0,
                                                          sticky=NSEW)

        # Label options de partie
        self.lbl_options_de_partie = Label(self.cadre_fonctions, text="Options", relief="sunken",
                                           font="Arial 13 bold").grid \
            (row=1, column=0, sticky=NSEW, padx=10, pady=10)

        # Boutton revoir la partie

        self.btn_revoir_partie = Button(
            self.cadre_fonctions,
            text="Revoir une partie",
            command=self.alert_revoir_une_partie).grid(row=7,
                                                       column=0,
                                                       sticky=NSEW)

        # Bouton annuler deplacement
        self.btn_console = Button(self.cadre_fonctions,
                                  text="Annuler le dernier mouvement",
                                  command=self.annuler_deplacement).grid(
                                      row=8, column=0, sticky=NSEW)

        # Bouton pour afficher les déplacements effectués
        self.btn_console = Button(
            self.cadre_fonctions,
            text="Afficher les déplacements effectués",
            command=self.afficher_liste_deplacements).grid(row=9,
                                                           column=0,
                                                           sticky=NSEW)

        # Bouton pour lire les règlements du jeux
        self.btn_reglement = Button(
            self.cadre_fonctions,
            text="Voir les règlements du jeux en ligne",
            command=self.openweb).grid(row=10, column=0, sticky=NSEW)
        # Bouton changer thème:
        self.btn_changer_theme = Button(self.cadre_fonctions,
                                        text="Changer le thème",
                                        command=self.changer_theme).grid(
                                            row=11, column=0, sticky=NSEW)
Beispiel #6
0
# -*- coding: utf-8 -*-
"""Module principal du package pychecs2. C'est ce module que nous allons exécuter pour démarrer votre jeu.
Importez les modules nécessaires et démarrez votre programme à partir d'ici. Le code fourni n'est qu'à titre d'exemple.

"""
from pychecs2.echecs.partie import Partie
from pychecs2.echecs.echiquier import Echiquier
from pychecs2.interface.exemple import Fenetre

if __name__ == '__main__':
    # Création d'une instance de Partie.
    p = Partie()
    e = Echiquier()

    # Création et affichage d'une fenêtre (aucun lien avec la partie ci-haut).
    f = Fenetre()
    f.countdown()
    f.mainloop()