begin process at 2012 02 05 00:58:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > DAMIER SIMPLE AVEC TKINTER

DAMIER SIMPLE AVEC TKINTER


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Classé sous :damier, tkinter, python, pions Niveau :Débutant Date de création :05/09/2008 Vu :5 079

Auteur : bastelmann

Ecrire un message privé
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

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

  • # -*- 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()
# -*- 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!)


 Sources du même auteur

Source avec une capture HISTOGRAMME ALÉATOIRE

 Sources de la même categorie

Source avec Zip Source avec une capture PROGRAMMATION par grephit
Source avec Zip Source avec une capture EDITEUR DESSIN par grephit
Source avec Zip Source avec une capture PORTRAIT ROBOT par grephit
Source avec Zip ROTRING SCRIPT DESSIN par grephit
Source avec une capture PHOTO SATELLITE AVEC ARCHIVAGE par saigneurdushi

 Sources en rapport avec celle ci

Source avec Zip TPYCODE, TRADUCTEUR DE CODE par jonathan33350
Source avec Zip Source avec une capture TRIANGULATION par mecrosoft
Source avec Zip Source avec une capture EDITEUR DESSIN par grephit
Source avec Zip Source avec une capture PORTRAIT ROBOT par grephit
Source avec Zip TV PROGRAM FETCHING AND PARSING FOR ANYONE WOULD KEEP TRACE ... par Senethril

Commentaires et avis

Commentaire de petitmoustique le 31/10/2008 12:39:24 9/10

Je propose avec le clic droit !
Sinon, inutile mais drole ^^ +9

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

help, faire un mastermind en python et en tkinter avant le 24 !!! [ par Crick132 ] je suis &#233;tudiante en 2&#232;me ann&#233;e, je dois r&#233;aliser un mastermind en python avec 8 couleurs et 5 combinaisons possibles.si quelqu'un Probleme avec TKinter [ par titasse ] Bonjour, je debute en python. J'ai un probleme lorsque je veux importer TKinter avec la commande from TKinter import * j'ai le message suivant : Imp Ouverture d'un fichier windows (avec Tkinter) [ par Uims ] Bonjour, Je travaille sous python et Tkinter et j'aurai voulu savoir comment dire a python de demarrer (comme on clique sur un fichier) une applicati Python 2.6 avec Tkinter 8.6 [ par zarash ] Bonjour, Voici mon probleme : Je souhaite utiliser une option du widget text de Tkinter qui n'existe que dans la version 8.6.Il s'agit de la rotation PYTHON TKINTER utilisation de labels [ par bichon3001 ] Bonjour, Je souhaite utiliser l'interface graphique TKinter de Python pour appeler une fonction avec un bouton, et afficher le résultat dans un label. Tkinter [ par williammalavelle ] Bonjour à tous, Question stupide : je débute sous Python et sous Tkinter. J'ai un script python que je souhaite lié à Tkinter (j'ai préparé les fenêt Selecteur de couleur [ par PunkFloyd91 ] Bonjour, je suis débutant et essais de créer un petit logiciel de traitement d'images du style "paint" en python 3 avec la 'library' de tkinter. Je ch Tkinter et les bases de données [ par dahrprog ] Bonjour tout le monde :) , je suis débutant en Python et Tkinter , je peux fabriquer des interfaces sur Tkinter , et je j'aimerais bien manipuler des debutant en python [ par newss ] bonjour, je debute dans le python j'ai un livre sur python 2, je voudrais savoir comment bien commencer? Faire les exos ou allez directement dans ce Python et Mysql [ par dahrprog ] Bonjour tout le monde , je suis debutant en Python et Mysql , j'ai pu finalement créer une base de données sur phpmyadmin , et je peux la connecter de


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales