colorMode(RGB, 255, 255, 255); // Retour au mode RGB
Cet exercice permet de combiner les notions vues précédemment :
Un tableau à une dimensions contient les couleurs de la palette.
Un tableau à deux dimensions contient les codes des couleurs des cases de la grille. Ce code est un numéro qui fait référence à l'indice du tableau à une dimension.
Les interactions permettent de détecter où on clique avec la souris pour déclencher l'action correspondante : sélectionner une couleur lorsque l'on est au-dessus de la palette ou colorier une case lorsque l'on est au-dessus de la grille.
Correction de l'exercice 1
This link can't be embedded.
Exercice 2 : Des pions qui rebondissent dans une grille
Dans une grille de 25x25 cases de 20 pixels de côté, 10 pions noirs et ronds de 10 pixels de diagonale se déplacent en rebondissant sur les côtés de la grille. Les pions peuvent se déplacer indépendamment d'une case à la fois horizontalement, verticalement ou en diagonale.
Il s'agit d'utiliser deux tableaux à une dimension qui contient les différentes coordonnées des pions dans le système de la grille : i et j de chaque pion.
Correction de l'exercice 2
This link can't be embedded.
Exercice 3 : Variante avec des murs dans la grille
Le code ci-dessous est une variante de l'exercice précédent où on construit des "murs" (cases noires) dans la grille.
Un tableau à 2 dimensions permet de mémoriser les emplacements des murs : 0 pour une case vide, 1 pour une case murée.
L'exercice consiste à trouver comment faire rebondir les balles de l'exercice précédent sur les murs et non plus seulement sur les bords de la grille.
Correction de l'exercice 3
Pour éviter que les pions ne soient sur une case noire dès le début :
Initialiser le tableau des pions après le tableau de la grille (inverser les deux parties de code par rapport au code précédent)
Si un pion est sur une case noire, mettre la case en blanc
Tester si la case où sera le pion juste après son déplacement est un mur ou non
This link can't be embedded.
Déplacement d'un pion avec les flèches sur le clavier
Références
Pour capturer et réagir à la pression d'une touche sur le clavier, on peut utiliser les commandes Processing
Le code suivant reprend le code de l'exercice 3 ci-dessus, le modifie pour n'avoir qu'un seul pion (donc plus besoin de tableaux à 1 dimension pour mémoriser les caractéristiques des pions) et ajoute une méthode pour gérer l'interaction avec le clavier.
Exemple : Pacman
On peut assez vite passer à un jeu de type Pacman à partir du code précédent. Pour cela, nous pouvons trouver le morceau de code contenant la description du labyrinthe du jeu dans les commentaires de cette vidéo.
Le code suivant reprend le tableau à 2 dimensions contenant des codes pour décrire chaque case du jeu (1: Mur; 0: Pastille; 8 : Grosse pastille; 6: Vide) inclut dans le code source.
Il suffit alors de quelques modifications au code de la section précédente pour ressembler à un jeu de Pacman (sans fantômes pour le moment).
Exercice 4 : Ajouter un score
Dans le code ci-dessus, Pacman avale des pastilles. Comme exercice, il faut :
compter le nombre de pastilles avalées par Pacman et en faire un score (1 point par petite pastille; 10 points par grosse pastille).
Afficher le score en grosses lettres au centre du labyrinthe.
Quand le score atteint la valeur correspondant au moment où Pacman à avalé toutes les pastilles, on affiche au centre "GAME OVER".