3. Cliquer - onclick()
¶
Dans ce chapitre nous explorons comment un programme peut détecter un clic de souris et y réagir. Cliquer (toucher) est la méthode principale pour interagir avec un smartphone : quand le doigt touche une certaine position de l’écran, le programme y réagit. Nous allons voir que :
la méthode
onclick(f)
permet de définir une fonction de rappel,la fonction de rappel
f(x, y)
est appelée lors d’un clic de souris,la méthode
listen()
met en marche l’écoute des événements interactifs.
Fonction de rappel¶
En informatique, une fonction de rappel (callback en anglais) ou fonction de post-traitement est une fonction qui est passée en argument à une autre fonction. Cette dernière peut alors faire usage de cette fonction de rappel comme de n’importe quelle autre fonction, alors qu’elle ne la connaît pas par avance.
Fonction onclick
¶
La méthode onclick(f)
permet de définir une fonction f
qui est alors appelée à chaque fois quand on clique avec la souris dans le canevas. À ce moment la fonction f
est appelée avec les coordonnés (x, y)
de la souris au moment du clic.
La variable s
fait référence à l’objet Screen
qui possède les deux méthodes :
onclick(f)
pour installer une fonction de rappel f() pour un clic de souris,listen()
pour commencer à écouter les événements de la souris.
Le programme suivant dessine un point à la position du clic et affiche les coordonnées dans la console.
Exercice : Cliquez dans les 4 coins et au centre.
Les coordonnées¶
Nous pouvons ajouter les coordonnées.
Clics numérotés¶
Nous pouvons numéroter les clics.
Un mot par clic¶
Ce programme pose un mot d’une phrase à chaque clic de la souris.
Tortue ou écran¶
Une fonction onclick()
existe pour l’écran et pour chaque tortue.
Donc nous avons deux fonctions de rappel différentes: une pour des clics dans l’écran en général, et une que pour des clics dans la tortue.
La fonction de rappel …
f
est appelé quand nous cliquons dans l’écrang
est appelé quand nous cliquons dans la tortue
La fonction de rappel de la tortue fait avancer la tortue de 20 pixels.
Exercice : Cliquez dans dans la tortue et à côté et observez la différence.
Dessiner une forme¶
Dans ce programme nous dessinons une ligne entre les clics successifs.
C’est pour cette raison nous appelons la fonction ligne(x, y)
au lieu de f(x, y)
.
Nous réagissons également à deux touches du clavier :
u
(up) pour lever le styloc
(clear) pour effacer le canevas
Exercice : Dessinez une maison. Utilisez la touche u
(up) pour dessiner une forme disjointe, par exemple la fenêtre.
Remplir une forme¶
Dans ce programme nous dessinons une ligne entre les clics successifs.
C’est pour cette raison nous appelons la fonction ligne(x, y)
au lieu de f(x, y)
.
Nous réagissons également à deux touches du clavier :
u
(up) pour lever le styloc
(clear) pour effacer le canevasb
(begin fill)e
(end fill)
Exercice : Dessinez une maison. Utilisez la touche b
(begin) pour commencer le remplissage et la touche e
(end) pour terminer le remplissage.
Une grille¶
Par la suite nous allons places les points sur une grille. Voici comment indiquer les positions de la grille.
Placer en grille¶
Nous pouvons arranger les disques en grille.
Points aimantés¶
Nous pouvons faire en sorte que les points tombent sur les intersections d’une
Dessiner une grille¶
Ici nous dessinons d’abord un tableau de jeu. Ensuite nous détectons la case dans laquelle le clic a eu lieu et y ajoutons un disque.
Échiquier¶
Ici nous dessinons d’abord un tableau de jeu. Ensuite nous détectons la case dans laquelle le clic a eu lieu et y ajoutons un disque noir.
Tirer la tortue¶
Le programme suivant permet de déplacer la tortue avec la souris.
onclick
la tortue devient rouge,ondrag
la tortue devient orange et suit la souris,onrelease
la tortue devient verte et s’arrête.
Prudence
La fonction on onrelease
ne fonction pas dans ce site; la tortue ne devient jamais verte. Par contre ce programme fonctionne dans l’éditeur externe Thonny.
Exercice : Essayez de tirez la tortue lentement avec la souris.
Exercices¶
Jeu de Go¶
Le jeu de go est un jeu de société originaire de Chine qui oppose deux adversaires qui placent à tour de rôle des pierres, respectivement noires et blanches, sur les intersections d’un tablier quadrillé. Le but est de contrôler le plan de jeu en y construisant des « territoires ». Les pierres encerclées deviennent des « prisonniers », le gagnant étant le joueur ayant totalisé le plus de territoires et de prisonniers.
Deux pierres noires en atari (à gauche), capturées au coup suivant (à droite).
Modifiez le jeu pour
avoir une grille de 19 x 19 lignes
colorier le tableau en beige
avoir 3 x 3 points de repère sur les lignes 4, 10 et 16
placer les pions sur les intersections
alterner les pions noir et blancs
Voici une partie d’un jeu de go sur un tableau de jeux annoté avec les lettres et nombres pour identifier les pions.