Exercice langage C corrigé Flocons, tutoriel & guide de travaux pratiques en pdf.
Créez un programme contenant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #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)