![]() |
![]() |
Frédéric Mallet > Programmation Avancée > Projets 2015-2016
Projets 2015-2016De $1Table des matières
ModalitésPour le projet, des groupes aléatoires de 3 ou 4 étudiants ont été constitués. L'utilisation d'un gestionnaire de source est obligatoire. Il doit être accessible par le chargé de TPs et les logs de commit pourront être évalués pour la notation finale. Dans le cadre du module SMZG111 Programmation Avancée le projet sera évalué en fonction des critères suivants :
Chacun de ces critères comptant pour 20% de la note de rendu du projet. Cette note sera commune à tout le groupe sauf si il existe une différence trop importante dans le travail fourni entre les membres. Les projets seront à déposer sur Jalon sous forme de fichier ZIP contenant les informations suivantes:
Le contenu du mail (si trop gros) peut également être déposé sur un site de gestion de code (type google code ou assembla). Il faudra penser à garder une copie locale au cas où le site tombe en panne la veille de la démonstration. Une soutenance orale (par groupe) aura lieu le mardi 12 janvier selon un ordre de passage annoncé ultérieurement. Cette présentation orale de 20 minutes aura pour but de mettre en lumière la contribution individuelle de chaque membre du groupe. Cette note de soutenance sera individuelle. La note finale de projet sera calculée en faisant la moyenne de la note de rendu de projet (50%) et la note de soutenance (50%). Les groupes de 3 étudiants auront
Sujet 1Le but de ce projet est de construire un logiciel de gestion de fichier (type Explorateur windows, Finder Mac) dont les fonctionnalités pourront être étendues par plugin. De base, le logiciel offrira une vue permettant de naviguer dans une arborescence de fichiers et d'avoir des informations basiques telles que la taille ou la date de modification des fichiers. Il devra être possible d'ajouter des plugins au logiciel pour changer son apparence ou ajouter de nouvelles fonctionnalités. Chaque plugin devra proposer une fenêtre de configuration permettant de modifier son comportement, et son état devra être sauvegardé sur disque. De plus, l'état de l'ensemble de l'application devra être sauvegardé sur le disque, de façon à la restaurer quand l'utilisateur la relance. Il y aura au moins deux types de plugins, qui ne sont pas mutuellement exclusifs (i.e un plugin d'analyse peut être aussi un plugin de vue). Plugins de vueLes plugins de vue permettront d'afficher une autre visualisation des répertoires/fichiers que celle par défaut. Par exemple, colorier les noms des fichiers en fonction des droits d'accès ou de leur propriétaire, affichier les images en miniature... Plugins d'analyseCes plugins traiteront un répertoire ou une arborescence pour en extraire des nouvelles informations. Par exemple, un plugin pourra calculer la taille occupée par chacun des répertoires, un autre pourra chercher les fichiers identiques (MD5). L'affichage de ces informations pourra se faire dans le même plugin ou nécessiter le recours d'un plugin de vue. Sujet 2Le but de ce projet est de construire un jeu de combat virtuel de type RobotWar Dans une arêne de combat en 2D, vue de dessus, des robots s'affrontent, gérés par une IA relativement basique. Le comportement ainsi que le graphisme des robots est décidé par des plugins. Un robot est actif tant que sa vie n'a pas atteint 0 et le gagnant est le dernier robot actif. À chaque robot est associé une quantité d'énergie et chaque action consomme une partie de celle-ci. L'énergie remonte régulièrement tant qu'elle n'a pas atteint la valeur maximale. Plugins graphismeCes plugins servent à la représentation graphique des robots et de leurs armes. Le jeu devra contenir de base un plugin qui représente les robots par un carré de couleur alératoire. D'autres plugins possibles sont par exemple une animation, la visualisation des barres de vie et d'énergie... Plugins de déplacementCes plugins servent à décider du déplacement du robot. Le plugin le plus simple consiste en un déplacement aléatoire mais d'autres plus compliqués peuvent être implémentés. Par exemple dans le cas d'un robot avec une arme de courte portée, un déplacement vers un autre robot sera utile. On peut aussi avoir un déplacement dont la vitesse dépend de la barre de vie ou de la quantité d'énergie restante. Plugins d'attaqueCes plugins servent à décider attaquer les autres robots et à diminuer leur barre de vie. Chaque attaque sera définie par une portée et un graphisme. De base un plugin implémentant une attaque de courte portée sera proposé. RemarquesNe perdez pas de vue que l'objectif est de faire une architecture à plugin, donc ne passez pas trop de temps à rendre votre jeu intéressant/amusant, ce n'est pas le but. Scénario pour l'évaluationAfin d'évaluer vos projets, voici un ensemble d'étapes qui sera effectué. Vous devez vous assurer que ce scénario marche sur n'importe quelle machine. Le projet sera testé sur un Linux ou un Mac avec un Java 8.
Le but de cette évaluation est d'avoir un aperçu rapide de votre programme afin de préparer la présentation orale.
Mots clés:
|
Powered by MindTouch Deki Open Source Edition v.8.08 |