Exercice langage C corrigé: Flocons

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;
}
  1. Écrivez la fonction init_flocon qui initialise les coordonnées du flocon passé en paramètre à une position aléatoire, et la fonction affiche_flocon, qui affiche le flocon avec un pixel aux coordonnées du flocon. Le programme n’affiche pour l’instant que des points statiques.
  2. Ajoutez une boucle comme vu en cours pour que les flocons soient animés.
  3. 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.
  4. 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)

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *