Exercice langage C corrigé Flocons, tutoriel & guide de travaux pratiques en pdf.
Créez un programme contenant :
#include #include "swindow.h" struct Flocon { int x, y; }; void init_flocon(Flocon * f, int longueur, int hauteur) { // ... } void dessine_flocon(SimpleWindow * window, Flocon * f) { // .. } void avance_flocon(Flocon * f, int hauteur) { f->y = f->y + 1; } int main(int argc, char ** argv) { const int longueur = 200; const int hauteur = 200; const int nb_flocons = 500; Flocon flocons[nb_flocons]; SimpleWindow window("neige", longueur, hauteur); window.map(); // Initialisation aleatoire de la position des flocons: for(int i = 0; i < nb_flocons; i++) init_flocon(flocons + i, longueur, hauteur); // Efface la fenetre en bleu clair: window.color(1, 0.5, 0.5); window.fill(); // Dessine en blanc: window.color(1, 1, 1); // Affichage des flocons: for(int i = 0; i < nb_flocons; i++) dessine_flocon(&window, flocons + i); window.show(); getchar(); return 0; }
- Écrivez la fonction
init_flocon
qui initialise les coordonnées du flocon passé en paramètre à une position aléatoire, et la fonctionaffiche_flocon
, qui affiche le flocon avec un pixel aux coordonnées du flocon. Le programme n’affiche pour l’instant que des points statiques. - Ajoutez une boucle comme vu en cours pour que les flocons soient animés.
- Modifiez la fonction
avance_flocon
pour qu’un flocon qui dépasse le bas de la fenêtre recommence à tomber du haut de la fenêtre. - Le truc pour avoir un mouvement « réaliste » est de tirer le déplacement du flocon aléatoirement à chaque fois. Modifiez la fonction
avance_flocon
pour tirer le déplacement en y aléatoirement entre 0 et 3, le déplacement en x entre -2 et +2.
La correction exercice langage C (voir page 2 en bas)