# ############################################################################## # # Ce programme montre comment déterminer la zone cliquée par la souris # dans une grille de 10x10 soit 100 cases différentes # # Le calcul de la case cliquée est effectué automatiquement à chaque clic # # Date : 24 mars 2025 # Interpréteur : Python 3.2 # Environnement de développement : EduPython 2.5.3.0 # Auteur : Jean-Christophe MICHEL # Site ressource : http://python.gecif.net/ # # ############################################################################## from turtle import * # ============================================================================== # D é f i n i t i o n d e s f o n c t i o n s : # ============================================================================== def afficher_grille(): # Initialisation de la Tortue : speed(0) hideturtle() title("Grille 10x10") setup(550,550) # affiche le titre : up() goto(0,250) write("Cliquez gauche dans une case afficher X, cliquez droit pour afficher O",align='center') goto(0,230) write("R : remise à zéro et Echap : quitter",align='center') # trace les 11 traits horizondaux : for i in range(11): up() x=-200 y=-200+40*i goto(x,y) down() forward(400) left(90) # trace les 11 traits verticaux : for i in range(11): up() x=-200+40*i y=-200 goto(x,y) down() forward(400) color('red') up() hideturtle() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - def effacer_grille(): # cette fonction est appelée si on clique sur le bouton droit de la souris reset() afficher_grille() # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - def cliquer_gauche(x,y): # on a cliqué gauche sur le point de coordonnées (x,y) # Il y a 10 lignes et 10 colonnes # x varie de -200 à 200 par pas de 40 # y varie de -200 à 200 par pas de 40 c=(x+200)//40 # c est un entier entre 0 et 9 l=(y+200)//40 # les lignes sont également numérotées de 0 à 9 print("colonne : %d " % c) print("ligne : %d\n" % l) goto(-188+c*40,-198+l*40) write("X",font=('Arial Unicode MS', 20)) # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - def cliquer_droit(x,y): # on a cliqué droit sur le point de coordonnées (x,y) c=(x+200)//40 # c est un entier entre 0 et 9 l=(y+200)//40 # les lignes sont numéroté de 0 à 9 print("colonne : %d " % c) print("ligne : %d\n" % l) goto(-188+c*40,-198+l*40) write("O",font=('Arial Unicode MS', 20)) # ============================================================================== # P r o g r a m m e p r i n c i p a l : # ============================================================================== # dessine la grille et affiche les messages texte : afficher_grille() # fonctions à lancer si on clique avec un bouton de la souris : onscreenclick(cliquer_gauche) # gauche onscreenclick(cliquer_droit,3) # droit # fonction à lancer si on appuie sur une touche : onkeypress(bye,"Escape") onkeypress(effacer_grille,"r") # lance le gestionniare d'évènement : listen() # lance la boucle principale : done() # ============================================================================== # F i n d u p r o g r a m m e # ==============================================================================