Voici un programme tout simple qui fait apparaitre un damier, l'utilisateur peut ajouter des pions verts là ou il veut, et des pions rouges de manière aléatoire en cliquant sur le bouton.
Nécéssite d'être amélioré donc j'attend vos commentaires!Merci
Source / Exemple :
# -*- coding: cp1252 -*-
#######Importations des fonctions########
from Tkinter import *
from random import * #pour la génération aléatoire des pions
#######Définition des fonctions##########
def cercle(x, y, r, coul ='red'):#pour le dessin des pions
"tracé d'un cercle de centre (x,y) et de rayon r"
can.create_oval(x-r, y-r, x+r, y+r, fill=coul)
def remplir(y):#calcul des coord de la ligne
x=0
liste=[]
while x<200:
liste.append([x,y,x+20,y+20])
x=x+20
return liste
def figure_1():
"dessiner le damier"
global x,y,damier
x=0
y=0
# Effacer d'abord tout dessin préexistant :
can.delete(ALL)
#definition de la matrice du damier
damier=[]
while y<200:
damier.append(remplir(y))#on remplit avec les coordonnées des cases de la ligne
y=y+20
a=0
while a<10:#on trace la premiere partie du damier
al=damier[a]
b=0
while b<10:
al1=al[b]
can.create_rectangle(al1[0],al1[+1],al1[2],al1[3],fill='black')
b=b+2
a=a+2
a=1
while a<10:#on recommence avec un décalage de 1 en abcsisses et un en ordonnées pour la
#deuxieme partie du damier
al=damier[a]
b=1
while b<10:
al1=al[b]
can.create_rectangle(al1[0],al1[+1],al1[2],al1[3],fill='black')
b=b+2
a=a+2
def figure_2():
"""dessiner des pions de manière aléatoire"""
alea=randrange(10)#on sélectionne une position au hasard sur la matrice
alea1=randrange(10)
ligne=damier[alea]#on prend les coordonnées aléatoires
case=ligne[alea1]
x=case[0]+10#on centre le pion
y=case[1]+10
cercle(x,y,10,'red')#et on le dessine
def pointeur(event):
"""Dessine un pion la ou l'utilisateur a cliqué"""
x=event.x%20
x=(event.x-x)+10
y=event.y%20
y=(event.y-y)+10
##print x,y#debugging
cercle(x,y,10,'green')
##### Programme principal : ############
global damier
fen = Tk()
can = Canvas(fen, width =200, height =200, bg ='white')
can.bind("<Button-1>", pointeur)
can.pack(side =TOP, padx =5, pady =5)
b1 = Button(fen, text ='damier', command =figure_1)
b1.pack(side =LEFT, padx =3, pady =3)
b2 = Button(fen, text ='pions', command =figure_2)
b2.pack(side =RIGHT, padx =3, pady =3)
b3 = Button(fen, text ='Quitter', command =fen.destroy)
b3.pack(side =BOTTOM,padx =3, pady =3)
fen.mainloop()
Conclusion :
Ce que je cherche a rajouter :
- choix des couleurs de pions
- les deux couleurs se placent a l'aide du clic
- suppression des variables globales ( bah oui j'ai pas réussi a faire autrement, je débute en prog!)
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.