TU APPRENDS ICI... |
que la programmation événementielle est un nouveau concept de programmation. Au lieu de donner des commandes à la Tortue avec votre programme, vous pouvez la contrôler avec des clics de souris. |
EXEMPLES |
Les événements de la souris sont utilisés pour déclencher des actions contrôlées par la souris. Les clics sont enregistrés par le système et déclenchent l'appel d'une fonction de rappel (callback function). Cette fonction retourne les coordonnées du clic et définit ce qui doit se passer lorsque la souris est cliquée. La fonction de rappel est enregistrée comme un paramètre nommé dans 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:") |
REMARQUE... |
La nouvelle technique de programmation peut être reconnue par le fait que la fonction onMousePressed(x, y) n'est appelée nulle part dans votre programme. Elle est appelée par le système lorsqu'un événement se produit. Nous appelons cette fonction une fonction de rappel ou callback. La variable n dans le dernier exemple est appelée variable globale, car elle est utilisée à la fois dans le programme principal et dans la fonction drawPoint(x,y). Une variable utilisée uniquement dans une fonction est appelée variable locale. |
À FAIRE PAR TOI-MÊME |
|
MATERIEL SUPPLÉMENTAIRE |
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'étendre le jeu pour qu'il reconnaisse automatiquement quand un joueur a gagné ou si la partie est nulle. |
À RÉSOUDRE PAR TOI-MÊME |
4*. |
|
![]() |
![]() |
![]() |