Barème :
— Environ 1/2 des points sur les éléments fonctionnels (Section 3)
— Environ 1/4 des points sur la qualité du code (Section 4).
— Environ 1/4 des points sur le rapport : qualité de la rédaction, analyse du sujet, analyse des
problèmes.
Modalité de rendu : Votre dêpot SVN devra contenir les éléments suivants :
— votre projet au format Visual Studio écrit en langage C#,
— un rapport (format pdf).
Le contenu de votre dépôt SVN sera téléchargé à la fin de cette période école (date exacte précisée
par mail) et constituera votre rendu de projet.
Il est fortement recommandé de réaliser un checkout de votre dépôt avant la date limite et sur une
autre machine que celle que vous avez utilisée pendant vos développements afin de vérifier que celui-ci
est complet, que votre projet compile et s’exécute correctement. Tout évènement menant à un retard
de rendu (par exemple dépôt SVN incomplet à la date limite) entrainera une pénalité de 2n−1points
(avec nle nombre de jours de retard).
Plagiat : La récupération de code chez une tierce personne, qu’il s’agisse d’un étudiant ou d’un site
internet, n’est permise qu’avec citation de la source dans le code et dans le rapport. Le code utilisé
avec citation des sources n’est pas considéré comme le résultat du travail de l’étudiant. Un code utilisé
sans référence à son auteur est un code plagié. Le plagiat est interdit par le règlement intérieur de
l’école (Article 3).
2 Démarrage
2.1 Comprendre la structure d’un programme animé
Téléchargez le mini-projet Visual C# à cette adresse : http://www.esiee.fr/~perretb/E3FI/
SpaceInvaders.zip. Ce projet contient un squelette fonctionnel d’un programme interactif que vous
modifierez et complèterez tout au long du projet.
Avant même d’ouvrir ce projet dans Visual Studio, ajoutez tous les fichiers qu’il contient sur
votre dépôt SVN et réalisez un commit. Pour le moment, le projet comporte trois classes organisées
(grossièrement) selon le schéma MVC :
—GameForm.cs : c’est la classe d’affichage (Vue) : elle représente la fenêtre de jeu.
—Game.cs : c’est elle qui contient les mécanismes fondamentaux du jeu (Contrôleur).
—BalleQuiTombe.cs : c’est un objet de "démonstration" (Modèle), il s’agit d’une balle qui ne
fait que tomber. Elle est capable de calculer l’évolution de sa position en fonction du temps qui
passe. Elle sait également se représenter (dessiner l’image qui la représente).
Questions de compréhension :
— Que faut-il modifier pour que la balle tombe plus lentement ou plus rapidement ?
— Ajoutez la gestion des touches "flèche gauche" et "flèche droite". Lorsque le joueur appuie sur une
des flèches, la balle (si elle existe) doit se déplacer dans la direction indiquée tout en continuant
à tomber.
2.2 Classe utilitaire Vecteur2D
Afin de faciliter la gestion des coordonnées et des déplacements, il est nécessaire de disposer d’un
type permettant de représenter des points et des vecteurs du plan et de réaliser des opérations basiques
(addition, multiplication par un scalaire. . . ). Comme .net ne propose pas de structure pour cela (il y
a la classe Point mais qui est en coordonnées entières) nous allons écrire une classe Vecteur2D.
2