Jeu de dame sous tkinter

Fermé
Echo971 Messages postés 1 Date d'inscription jeudi 15 mai 2014 Statut Membre Dernière intervention 15 mai 2014 - 15 mai 2014 à 06:13
 Utilisateur anonyme - 4 oct. 2014 à 22:08
Je doit réaliser un jeu de dame si possible fonctionnel, Pour l'instant je n'ai réussi à créer que l'interface, le plateau et les pions mais je suis totalement perdu en ce qui concerne les façons d'interagir avec ces pions, ni même comment enregistrer des propriétés aux mouvements.
Voici ma base en question :
from tkinter import *
import tkinter.messagebox
started=False
global c=50
global damier=[]
global pions_b=[]
global dame_b=[]
global pions_n=[]
dame_n=[]
def start():
    pions_b=[0, 2, 4, 6, 8, 11, 13, 15, 17, 19, 20, 22, 24, 26, 28, 31, 33, 35, 37, 39]
    pions_n=[60, 62, 64, 66, 68, 71, 73, 75, 77, 79, 80, 82, 84, 86, 88, 91, 93, 95, 97, 99]
    dame_n=[]
    dame_b=[]
    started=True
    pions()
def damier():
    y=0
    while y<10:
        if y%2==0:             
            x=0                  
        else:                       
            x=1                   
        ligne_de_carres(x*c, y*c)
        y += 1
def ligne_de_carres(x, y):
    i=0
    while i < 10:
        can.create_rectangle(x, y, x+c, y+c, fill='white')
        i+=1
        x+=c*2
def pions():
     x=25
     y=25
     r=25
     while x<=475:
          can.create_oval(100+x-r, y-r, x+r, y+r, fill='black')
          can.create_oval(x-r, y+100-r, x+r, y+r, fill='black')
          can.create_oval(100+x-r,100+y-r, x+r, y+100+r, fill='black')
          can.create_oval(x-r,200+y-r, x+r, y+100+r, fill='black')
          can.create_oval(100+x-r, y+300-r, x+r, y+325, fill='ivory')
          can.create_oval(x-r, y+400-r, x+r, y+325, fill='ivory')
          can.create_oval(x+100-r,400+y-r, x+r, y+425, fill='ivory')
          can.create_oval(x-r,500+y-r, x+r, y+425, fill='ivory')
          x=x+100
def regles():
     messagebox.showinfo("Regles", "...")
def select():
     can.coords(oval,event.x-r,event.y-r,event.x+r,event.y+r)
     
fen = Tk()
fen.title("Jeu de Dame")
can = Canvas(fen, width =500, height =500, bg ='grey')
can.bind("<Button-1>")
can.pack(side =TOP, padx =5, pady =5)
damier()
b1 = Button(fen, text ='Player VS  CPU  ')
b1.pack(side =LEFT, padx =3, pady =3)
b2 = Button(fen, text ='Player VS Player')
b2.pack(side =RIGHT, padx =3, pady =3)
b3 = Button(fen, text ='Quitter', command =fen.destroy)
b3.pack(side =BOTTOM,padx =3, pady =3)
b4 = Button(fen, text ='Nouvelle Partie', command =start)
b4.pack(side =BOTTOM,padx =3, pady =3)
b5 = Button(fen, text ='Regles', command =regles)
b5.pack(side =BOTTOM,padx =3, pady =3)
fen.mainloop()

Je suis une brelle de premier ordre en informatique alors je vous serez infiniment reconnaissant pour l'aide que vous souhaiterez m'apporter, Merci =).
A voir également:

1 réponse

Utilisateur anonyme
4 oct. 2014 à 22:08
Salut,

J'ai voulu créer un jeu aussi qui puisse faire bouger un pion mais je n'ai pas réussi à coder la limite de déplacement quelque soit la position du pion sur l'échiquier.

Voici mon début :

Utilise .bind("<nom du bouton>","nom de l'event") pour attendre de l'utilisateur une entrée spécifique et exécuter par sa commande une "fonction".
Le nom du bouton peut être un clique ou une touche du clavier. Par exemple : "<Button-1>" pour le clique gauche de la souris. Tu trouvera plus d'info en anglais ici : http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

Pour l'évent (ou événement lié à l'entrée de l'utilisateur), c'est comme une fonction mais cela ne prend en paramètre que "event" et rien de plus, rien de moins. Ensuite, tu mets une fonction comme d'hab.

Après voilà ...
0