Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/07049.jsonl.gz/1135

1. Déclencher -
onkey()¶
Avec la fonction
input() nous avons pu questionner l’utilisateur à un moment spécifique du programme. C’est utilisé pour demander une information spécifique à un moment précis.
Dans ce chapitre nous allons voir une autre façon d’utiliser les touches du clavier. Ici, appuyer sur une touche spécifique, à n’importe quel moment, va déclencher une action.
Dans ce chapitre nous découvrons comment utiliser le clavier de l’ordinateur pour interagir avec un programme. Nous allons voir que :
la fonction
onkey(f, 'a')installe une fonction de rappel
f(),
la fonction
f()est appelée à chaque fois que la touche
aest appuyée,
la fonction
listen()démarre l’écoute des événements du clavier.
1.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.
1.2. Avancer la tortue¶
Le programme suivant fait avancer la tortue à l’aide de la touche
a du clavier qui appelle une fonction de rappel.
La variable
s fait référence à l’objet
Screen qui possède les deux méthodes :
onkey(f, 'a')pour installer une fonction de rappel
f()pour la touche
'a',
listen()pour commencer à écouter les événements du clavier.
Deux lignes de texte sont affichées au début, pour que l’utilisateur sache qu’il doit d’abord cliquer dans la fenêtre de la tortue pour l’activer.
Exercice : Modifiez la fonction de rappel
f() pour que la tortue tourne en cercle.
1.3. Retourner à l’origine¶
La fonction
home() ramène la tortue à son origine. Nous avons changé le nom de la fonction de rappel
f() en
avancer(). C’est plus clair. La fonction
home() existe déjà, donc nous n’avons pas besoin de la définir.
Au lieu d’écrire les explications dans la console, nous allons les écrire directement dans la fenêtre de la tortue.
Exercice Ajoutez une fonction de rappel pour faire reculer la tortue.
1.4. Effacer la trace¶
Dans le prochain programme, nous ajoutons des touches supplémentaires pour les fonctions suivantes :
hpour ramener la tortue à l’origine avec
home(),
cpour effacer la trace avec
clear(),
rpour effacer la trace et ramener la tortue à l’origine avec
reset().
Le désavantage de ce programme, c’est que
clear() va aussi effacer le texte explicatif. Ça serait bien si ce texte était indépendant de la tortue qui bouge.
1.5. Tourner la tortue¶
Le programme suivant fait bouger la tortue à l’aide de 3 touches du clavier :
apour avancer
dpour tourner à droite
gpour tourner à gauche
Exercice : Ajoutez une fonction de rappel pour faire reculer la tortue.
1.6. Les flèches¶
Les touches de flèche portent les noms
Left,
Right,
Up et
Down.
Nous pouvons utiliser les 4 flèches pour faire bouger la tortue.
↑pour avancer
↓pour reculer
←pour tourner vers la gauche
→pour tourner vers la droite
Le référentiel utilisé se rapporte à la tortue. Quand la tortue est en face de nous, c’est difficile de la contrôler, car nous devons inverser les directions dans notre tête.
Exercice : Ajoutez les fonctions de rappel
up() et
down() pour monter et descendre le stylo.
1.7. Les touches WASD¶
Les jeux vidéos utilisent souvent les touches WASD pour déplacer le personnage du jeu (player) :
wpour aller vers le haut
apour aller vers la gauche
spour aller vers le bas
dpour aller vers la droite
Cette fois nous utilisons un référentiel absolu, fixé au canevas. La tortue peut se déplacer dans les 4 directions haut, bas, gauche et droite.
Exercice : Ajoutez les fonctions de rappel
home(),
clean() et
reset() pour effacer la trace et ramener la tortue à l’origine.
1.8. Courbes en cercle¶
Appuyer sur la touche
g va dessiner un quart de cercle à gauche. Appuyer sur la touche
d va dessiner un quart de cercle vers la droite.
1.9. Dessiner une maison¶
Appuyer sur la touche
m va dessiner une maison.
1.10. Lever le stylo¶
Nous allons utiliser les touches
u et
d pour les fonctions
upour lever le stylo avec
up(),
dpour baisser le stylo avec
down().
1.11. Choisir l’épaisseur¶
Nous allons introduire des touches pour choisir l’épaisseur du trait.
1pour un trait fin,
2pour un trait normal,
3pour un trait épais.
Exercice : Modifiez les épaisseurs.
1.12. Choisir la couleur¶
Nous allons introduire des touches pour choisir l’épaisseur du trait.
rpour un trait rouge,
vpour un trait vert,
bpour un trait bleu.
Exercice : Modifiez les couleurs.
1.13. Écrire dans le canevas¶
Nous pouvons aussi utiliser les touches pour écrire dans le canevas de la tortue. Pour avancer la tortue avec la lettre, nous choisissons l’option
move=True
1.14. Exercice¶
Snake¶
Utilisez une liste pour limiter le nombre de segments du serpent à 10.
Tetris¶
Les flèches gauche/droite permettent de déplacer le tétronimo. Programmez les touches haut/bas pour le tourner.