![]()
TU APPRENDRAS ICI... |
que la programmation événementielle est un nouveau concept de programmation. Au lieu de donner des instructions à la tortue à l'aide de ton programme, tu peux la contrôler avec des clics de souris. |
EXEMPLES DE PROGRAMMES |
Les événements de la souris permettent de déclencher des actions à l'aide de la souris. Les clics sont détectés par le système et provoquent l'appel d'une fonction appelée fonction de rappel (callback). Cette fonction reçoit les coordonnées du clic de souris et définit ce qui doit se passer lorsqu'on clique. Elle est enregistrée comme paramètre nommé de makeTurtle().
Programme:
|
Programme: from gturtle import * def drawStar(): repeat 9: forward(40) right(160) def onMousePressed(x, y): setPos(x, y) drawStar() makeTurtle(mousePressed = onMousePressed) hideTurtle() setPenColor("magenta") |
Programme: from gturtle import * def drawFigure(x, y): global n if n == 1: setPos(x, y) startPath() else: moveTo(x, y) dot(5) if n == nbCorners: fillPath() n += 1 makeTurtle(mousePressed = drawFigure) hideTurtle() setFillColor("red") n = 1 nbCorners = inputInt("Gib die Eckenzahl ein:") |
À RETENIR... |
| Cette nouvelle technique de programmation se caractérise par le fait que la fonction onMousePressed(x, y) n'est appelée nulle part directement dans ton programme. Elle est appelée par le système lorsqu'un événement se produit. Une telle fonction est appelée fonction de rappel, ou simplement callback. Dans le dernier exemple, la variable n est appelée variable globale, car elle est utilisée à la fois dans le programme principal et dans la fonction de rappel drawFigure(x, y). Une variable utilisée uniquement à l'intérieur d'une fonction est appelée variable locale. |
EXERCICES À RÉSOUDRE TOI-MÊME |
|
POUR ALLER PLUS LOIN |
TON PREMIER JEU |
from gturtle import * def square(): for i in range(4): forward(60) right(90) def drawBoard(): for x in range(3): for y in range(3): setPos(60 * x, 60 * y) square() def drawDot(x, y): global player if player == 1: setPenColor("red") player = 2 elif player == 2: setPenColor("lime") player = 1 setPos(x, y) dot(45) player = 1 makeTurtle(mousePressed = drawDot) hideTurtle() drawBoard() Il serait intéressant d'améliorer ce jeu pour qu'il détecte automatiquement lorsqu'un joueur a gagné ou lorsque la partie se termine par un match nul. |
À RÉSOUDRE PAR TOI-MÊME |
4*. |
|
![]()