Share
Explore

icon picker
Exercices

Exercice 1 : Un mini Paint

Le peut être modifié pour créer une petite application de coloriage.
Une palette contient une série de couleurs.
Si on clique sur une des cases de cette palette, on sélectionne la couleur indiquée par un petit triangle pointé sur sa case.
On peut colorier les cases de la grille de dessin avec la couleur sélectionnée en cliquant () ou en "glissant et appuyant" () dessus.
Capture d’écran 2020-04-19 à 12.54.54.png
Pour générer les couleurs de la palette, on peut s'inspirer de cet.
Il est basé sur la commande de Processing qui permet de passer du mode de couleur RGB habituel au mode de couleur
, basé sur une autre représentation des couleurs où les trois composantes ont une signification différente.
Voici le code permettant de générer un tableau contenant les couleurs de la palette illustrée ci-dessus :
color p[] = new color[m]; // Couleurs de la palette

// Initialisation de la palette de couleurs
colorMode(RGB, 255, 255, 255);
for (int j=0;j<m/2;j++) {
p[j] = color(255-2.0*j/m*255); // Dégradés de gris
}
colorMode(HSB, 360, 100, 100);
for (int j=m/2;j<m;j++) {
p[j] = color((j-m/2)*720/(m+2), 100, 100); // Arc-en-ciel
}
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.
Capture d’écran 2020-04-28 à 11.46.08.png

Correction de l'exercice 2

This link can't be embedded.

Exercice 3 : Variante avec des murs dans la grille

Capture d’écran 2020-05-05 à 11.38.00.png
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 ,
et .
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 source complet est disponible :
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".

Correction de l'exercice 4

L'instruction Processing permet d'arrêter l'appel à la méthode de manière indéfinie et ainsi de signaler l'arrêt du jeu.

Exercice 5 : Sommes des lignes et colonnes d'un tableau

Reprendre l'étape 6 du et ajouter en bas et à droite, respectivement les sommes des colonnes et des lignes des nombres du tableau.
Capture d’écran 2020-05-12 à 11.28.43.png

Correction de l'exercice 5

Exercice récapitulatif

Voici un code qui affiche des mots à des endroits aléatoires dans la fenêtre.
La fonction donne la largeur en pixels d'une chaîne de caractères.
Capture d’écran 2020-05-17 à 16.13.30.png
Je vous propose une série d'exercices pour développer ce code :

a) Animer les mots pour les faire rebondir sur les bords

b) Donner de nouvelles positions aléatoires aux mots quand on clique dans la fenêtre

c) Surligner en jaune (avec un rectangle) le mot sur lequel on clique

d) Déplacer ce mot sélectionné avec la souris

e) Lorsqu'on clique à nouveau le mot reprend sa couleur initiale et reste à la nouvelle position

Annexe : La fourmi de Langton

Les vidéos suivantes parlent d'un concept qui s'inscrit dans la lignée des exercices et exemples précédents.
Il n'y pas d'obligation d'en prendre connaissance dans le cadre du cours. C'est pour aller plus loin si on veut.
La première vidéo explique ce qu'est la fourmi de Langton.
La seconde montre comment on peut la coder en Processing (en anglais).


Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.