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.

Question

La méthode onclick() installe une fonction de rappel




3.1. 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.

3.2. 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.

3.3. Les coordonnées

Nous pouvons ajouter les coordonnées.

3.4. Clics numérotés

Nous pouvons numéroter les clics.

3.5. Un mot par clic

Ce programme pose un mot d’une phrase à chaque clic de la souris.

3.6. 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’écran

  • g 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.

3.7. 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 stylo

  • c (clear) pour effacer le canevas

Exercice : Dessinez une maison. Utilisez la touche u (up) pour dessiner une forme disjointe, par exemple la fenêtre.

3.8. 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 stylo

  • c (clear) pour effacer le canevas

  • b (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.

3.9. Une grille

Par la suite nous allons places les points sur une grille. Voici comment indiquer les positions de la grille.

3.10. Placer en grille

Nous pouvons arranger les disques en grille.

3.11. Points aimantés

Nous pouvons faire en sorte que les points tombent sur les intersections d’une

3.12. 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.

3.13. É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.

3.14. 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.

3.15. 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.