예제 #1
0
 def changer_jeu(nom_jeu):
     global choix
     global jeu
     global partie
     global plateau_graphique
     global THEME
     choix.destroy()
     plateau_graphique.destroy()
     jeu = importe(nom_jeu)
     partie = c.Partie(jeu, joueurs)
     partie.plateau.initialisation()
     THEME = {}
     try:
         for clef, valeur in partie.plateau.Jeu.THEME.items():
             photo = PhotoImage(file=dir +
                                valeur)  # ImageTk.PhotoImage(image)
             THEME[clef] = photo
     except:
         print("Pas de Thème configuré")
     print(THEME)
     plateau_graphique = affichage_init(partie.plateau, THEME)
     plateau_graphique.grid(row=0, column=0)
     partie.plateau.afficher()
     choix = choix_joueurs(saisie)
     choix.grid(row=4, column=0)
     texte.set(text="")
     texte.update()
예제 #2
0
def main(jeu, joueurs):
    """Initialize the interactive window and lauch the games"""
    partie = c.Partie(jeu, joueurs)
    partie.plateau.initialisation()
    partie.plateau.afficher()

    global num_tour
    num_tour = 0
    root = Tk()
    THEME = {}
    try:
        for clef, valeur in partie.plateau.Jeu.THEME.items():
            #image = Image.open(dir+valeur)
            photo = PhotoImage(file=dir + valeur)  #ImageTk.PhotoImage(image)
            THEME[clef] = photo
    except:
        print("Pas de Thème configuré")
    print(THEME)
    saisie = Frame(root)
    texte = StringVar()
    message = Label(saisie, textvariable=texte)
    message.grid(column=0, row=2)
    action = StringVar(saisie)
    entree = Entry(saisie, textvariable=action, width=30)

    def agir():
        global num_tour
        if not (partie.plateau.termine()):
            if partie.plateau.est_valide(action.get(), num_tour):
                partie.plateau.next(action.get(), num_tour)
                update(plateau_graphique, partie.plateau, THEME)
                texte.set(partie.plateau.message(num_tour, partie.joueurs))
                partie.plateau.afficher()
                num_tour += 1
            else:
                texte.set(
                    partie.plateau.message(num_tour, partie.joueurs) +
                    "\nLe coup entré n'est pas  valide")
        else:
            texte.set(partie.plateau.resultat(partie.plateau))
        if partie.plateau.termine():
            texte.set(partie.plateau.resultat(partie.plateau))

        print(entree.get())

    jouer = Button(saisie, text="Jouer", command=agir)

    #entree.bind("<Return>", agir)

    plateau_graphique = affichage_init(partie.plateau, THEME)
    plateau_graphique.grid(row=0, column=0)
    entree.grid(column=0, row=0)
    jouer.grid(column=0, row=1)
    saisie.grid(row=0, column=1)
    texte.set(partie.plateau.message(num_tour, partie.joueurs))

    root.mainloop()
예제 #3
0
def main():
    """Set the window with parameters and interactions"""
    global root
    root = Tk()
    side = Frame(root)
    saisie = Frame(side)
    restart = Button(side, text="Nouvelle Partie", command=recommencer)
    global mode
    global nom_du_jeu
    global jeu
    global choix
    mode = IntVar()
    nom_du_jeu = StringVar()
    nom_du_jeu.set("dames")
    jeu = importe(nom_du_jeu.get())
    top = Frame(side)

    def choix_joueurs(root):
        fond = Frame(root)
        if jeu.nb_joueurs == 1:
            vals = [0, 1]
            etiqs = ['Humain', 'IA']
            for i in range(2):
                b = Radiobutton(fond,
                                variable=mode,
                                text=etiqs[i],
                                value=vals[i])
                b.pack(side='left', expand=1)
        if jeu.nb_joueurs == 2:
            vals = [0, 1, 2]
            etiqs = ['Humain vs Humain', 'Humain vs IA', 'IA vs IA']
            for i in range(3):
                b = Radiobutton(fond,
                                variable=mode,
                                text=etiqs[i],
                                value=vals[i])
                b.pack(side='left', expand=1)

        return fond

    def parametres(root):
        fond = Frame(root)
        vals = [
            'dames', 'demineur', '2048', 'puissance_4', 'morpion', 'echecs',
            'othello'
        ]
        etiqs = [
            'Dames', 'Démineur', '2048', 'Puissance 4', 'Morpion', 'Echecs',
            'Othello'
        ]
        for i in range(7):
            b = Radiobutton(fond,
                            variable=nom_du_jeu,
                            text=etiqs[i],
                            value=vals[i],
                            command=lambda: changer_jeu(nom_du_jeu.get()))
            b.pack(side='left', expand=1)
        return fond

    settings = parametres(top)
    choix = choix_joueurs(saisie)
    global partie
    joueurs = ["Alice", "Bob"]
    partie = c.Partie(jeu, joueurs)
    settings.grid()
    choix.grid(row=4, column=0)
    partie.plateau.initialisation()
    partie.plateau.afficher()

    global num_tour
    num_tour = 0
    global THEME
    THEME = {}
    try:
        for clef, valeur in partie.plateau.Jeu.THEME.items():
            photo = PhotoImage(file=dir + valeur)  #ImageTk.PhotoImage(image)
            THEME[clef] = photo
    except:
        print("Pas de Thème configuré")
    print(THEME)
    global texte
    texte = StringVar()
    message = Label(saisie, textvariable=texte)
    message.grid(column=0, row=2)
    action = StringVar(saisie)
    entree = Entry(saisie, textvariable=action, width=30)
    global plateau_graphique
    plateau_graphique = affichage_init(partie.plateau, THEME)

    def changer_jeu(nom_jeu):
        global choix
        global jeu
        global partie
        global plateau_graphique
        global THEME
        choix.destroy()
        plateau_graphique.destroy()
        jeu = importe(nom_jeu)
        partie = c.Partie(jeu, joueurs)
        partie.plateau.initialisation()
        THEME = {}
        try:
            for clef, valeur in partie.plateau.Jeu.THEME.items():
                photo = PhotoImage(file=dir +
                                   valeur)  # ImageTk.PhotoImage(image)
                THEME[clef] = photo
        except:
            print("Pas de Thème configuré")
        print(THEME)
        plateau_graphique = affichage_init(partie.plateau, THEME)
        plateau_graphique.grid(row=0, column=0)
        partie.plateau.afficher()
        choix = choix_joueurs(saisie)
        choix.grid(row=4, column=0)
        texte.set(text="")
        texte.update()

    jouer = Button(saisie, text="Jouer", command=lambda: agir(action.get()))
    top.grid(row=0, column=0)
    plateau_graphique.grid(row=0, column=0)
    entree.grid(column=0, row=0)
    jouer.grid(column=0, row=1)
    restart.grid(column=0, row=2)
    saisie.grid(row=1, column=0)
    side.grid(row=0, column=1)
    texte.set(partie.plateau.message(num_tour, partie.joueurs))

    root.mainloop()