Open Source Your Knowledge, Become a Contributor
Technology knowledge has to be shared and made accessible for free. Join the movement.
Laboratoire Papers animés
Ces laboratoires sont une variante "animée" des papers. Les seules nouveautés étant :
- que l'on peut savoir si la case sous le "curseur" est coloriée ou non via la fonction
is_colored()
qui retourne 0 si ladite case n'est pas coloriée et 1 si elle l'est. (Initialement, aucune case n'est coloriée) ; - que la fonction
erase()
efface la couleur de la case sous le "curseur" ; - que chaque
erase()
et chaquecolorize()
marquent une pause juste après avoir effacé ou colorié la case ; - que le temps de pause à marquer entre chaque coloriage ou effacement de case est spécifié dans l'avant dernier paramètre
delai_anim
de la fonctioninit_paper()
; - que le dernier paramètre de la fonction
init_paper()
ne sera pas éxploité pour le moment et devra être tout simplement mis à 0.
Manipuler les papers animés.
Un paper animé
est un quadrillage dans lequel on va pouvoir se déplacer, colorier et effacer des cases. Le "curseur" de coloriage se trouve initialement toujours dans le coin supérieur gauche et chaque coloriage ou effacement est une étape de l'animation.
Les fonctions permettant de manipuler un paper animé
:
init_paper(nb_lignes,nb_colonnes,taille,delai_anim,ctrl_les_pas)
: Permet de créer unpaper
contenantnb_lignes
lignes etnb_colonnes
colonnes.taille
est la dimension en pixel d'une case etdelai_anim
est le temps de pause (en seconde) entre chaque coloriages ou effacements de cases. Ce délai peut-être décimal, par exemple 0.05 pour 5 centièmes de seconde. Le paramètrectrl_les_pas
sera exploité plus tard, il devra être mis à 0 pour le moment ;move_left()
: déplace le "curseur" de coloriage d'une case à gauche ;move_right()
: déplace le "curseur" de coloriage d'une case à droite ;move_down()
: déplace le "curseur" de coloriage d'une case vers le bas ;move_up()
: déplace le "curseur" de coloriage d'une case vers le haut ;move_to(i,j)
: déplace le "curseur" de coloriage en lignei
, colonnej
. NB : la première ligne est la ligne numéro 0 et la première colonne est la colonne numéro 0 ;colorize()
: colorie la case où se trouve le "curseur" de coloriage. Attention : on ne peut jamais colorier hors dupaper
;erase()
: efface la couleur de la case où se trouve le "curseur" de coloriage. Attention : on ne peut jamais effacer hors dupaper
;is_colored()
: retourne 0 si la case actuelle (sous le "curseur") n'est pas coloriée et 1 si elle l'est. (Initialement, aucune case n'est coloriée) ;change_color(rouge,vert,bleu)
: permet de définir la couleur de coloriage en fixant l'intensité des composantes rouge, verte et bleu. Attention : chaque composante de couleur ne peut qu'être un nombre entier entre 0 inclus et 255 inclus ;display_paper()
: affiche lepaper animé
.
Exemple
Voici un exemple qui colorie un petit carré de 4 cases en en haut à gauche du paper, puis les efface, et recommence 9 fois :
On voit bien que chaque coloriage ou effacement est visible (pendant le délai fixé de 0.25s dans l'avant-dernier paramètre de l'appel à la fonction init_paper();
).