Diamer

111 - 24 nov. 2018 à 20:24
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 24 nov. 2018 à 21:19
# -*- 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!)
A VOIR ÉGALEMENT

Damier simple avec tkinter
Jeu de la vie simple et graphique (tkinter) en python 3 - Codes sources - Python (Graphique)
Mise en forme simple du texte - Conseils pratiques - Javascript
Mirc : afficher une image.swf dans un dialog mirc simple ! - Conseils pratiques - IRC
Jeu 2d simple - Conseils pratiques - Flash
Gestion très simple des langues (culture) en asp.net 2.0 - Conseils pratiques - Visual Basic / VB.NET
COMMENTAIRES

Afficher le commentaire

Commenter la réponse de petitmoustique
S'inscrire maintenant
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.
DU MÊME AUTEUR (BASTELMANN)

1 réponse

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
24 nov. 2018 à 21:19
« Bonjour », « merci » ou « s'il vous plait » sont essentiels à toute demande car ces mots marquent la politesse élémentaire et montrent le respect que tout demandeur devrait avoir envers les bénévoles qui animent ce forum.

Merci donc de reformuler correctement ta question.

D'autre part, en Python il y a un truc essentiel : L'indentation.
Par défaut le site supprime les tabulations et les espaces en double (triple, etc...).

Pour afficher correctement ton code, merci de lire et d'appliquer ceci
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
Rejoignez-nous