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_floconqui 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_floconpour 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_floconpour 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)
Pages: 1 2