Mini-projet 2 (2023) : «ICMon»
But
Le but de ce mini-projet est de vous faire pratiquer les éléments de programmation orientée-objets vu au cours du semestre (encapsulation, abstraction, polymorphisme etc.).
Les jeux de type «Pokémon» nous servent de source d'inspiration très directe pour le projet de cette année ... dans des versions sensiblement moins ambitieuses (faute de temps) :-).
|
« Wall of fame »
Comme chaque année, vous pouviez participer au concours du «Meilleur jeu du CS107».
Toutes les soumissions au concours témoignent d'un travail engagé remarquable. Nous vous en félicitons!!
Cette année nous avons eu beaucoup de mal à départager certaines candidatures sur la vingtaine de dossiers reçus.
Aussi, il a fallu serrer certains groupes sur les marches du podium :)
Classement:
(les noms dans les groupes et pour les groupes ex-aequo sont donnés par ordre alphabétique)
- Première place : Yassine Afilal El Alami Idrissi et Ali Najib: projet très abouti avec de nombreux ajouts très bien pensés, des améliorations substantielles du Gameplay et beaucoup de finitions.
- Deuxièmes places (ex-aeqo)  : Antoine Bastide et Adam Bekkar ainsi que Christopher Perritaz et Stefan Taga: ces deux projets se sont distingués par un substantiel effort sur des extensions non triviales (inventaires interactifs, magasin, parser JSON pour les statistiques de Pokemon, évolution scénaristiques avec de nouvelles cartes etc.)
- Troisièmes places (ex-aeqo) : Thibault Avril et Eva Touzé, Grégory Blanc et Savvina Fotiadou ainsi que Tom Massias Jurien de la Gravière et Grégoire Martin-Guerre : de nombreuses extensions et un gros effort sur le visuel et/ou les scènes de transition qui rendent le résultat très plaisant
Le classement s'est fait sur la base de la qualité du code, de la richesse des extensions et/ou la qualité du « Gameplay » ainsi que la mise en valeur des outils mis à disposition.
Il est aussi important de noter que, comme chaque année, certains groupes n'ayant pas participé au concours auraient très clairement mérité une place dans le «Wall of Fame du CS107» :-)
Nous avons voulu ici récompenser l'effort de soumettre au concours et de mettre en valeur son travail.
Félicitations aux lauréats du concours et un très grand BRAVO à toutes et tous!!
Description générale et énoncé
Il s'agit dans ce mini-projet de mettre en oeuvre divers composants permettant d'implémenter des jeux de de type ««Pokémon»"» se déroulant sur des grilles. Comme résultat final, il vous sera demandé de coder un petit jeu impliquant un certain nombre de composants obligatoires
Pré-requis et mise en place
Comme pour le tutoriel, il vous est demandé de créer un projet à partir d'une archive. Vous utiliserez l'archive mp2-2023-provided.zip.
Le démarrage du projet est en principe facilité si vous avez réalisé les étapes du
tutoriel sur le matériel fourni.
Si vous n'avez pas eu le temps de faire le tutoriel, il est cependant recommandé de vous lancer directement dans le projet en vous inspirant de la solution fournies dans le dossier
tutos.
Pour créer un projet IntelliJ à partie de cette archive procédez comme suit :
- téléchargez l'archive ci-dessus dans un répertoire de votre choix;
- ouvrez le dossier MP2-2023;
- faites confiance au projet fourni :-) (bouton Trust..).
Pour Eclipse, une fois l’archive dezippée créez le projet en utilsant l’option "From existing sources" et en indiquant le répertoire hôte comme racine du projet.
Supprimez l’archive mp2-2023-provided.zip une fois le projet installé.
Rendu
Le rendu est fixé au Jeudi 21 Décembre 13h00. Les instructions détaillées pour le rendu vous seront communiquées en temps voulu.
Le rendu du projet devra comporter :
- le code source de votre projet sous la forme d'une archive ;
- un fichier README documentant l'utilisation de votre programme (comment le lancer, quels contrôles sont programmés et pour quels effets etc.); un exemple de README d'un projet antérieur est disponible ici [Lien]
- un fichier CONCEPTION expliquant dans les grandes lignes vos décisions de conception :
- les éventuelles modifications personnelles que vous avez apportées à l'architecture proposée en les justifiant;
- les classes/interfaces importantes ajoutées et comment elles s'insèrent dans l'architecture;
- le comportement que vous attribuez à chacun des composants introduits (si le composant n'est pas demandé ou s'il l'est mais que son comportement est une petite variante de celui suggéré dans l'énoncé).
Ces fichiers seront rédigés de façon succincte et sans formalisme (il ne s'agit pas de rapports). Vous utiliserez un format non propriétaire (pdf, Markdown ou simplement texte, avec une préférence pour les deux derniers formats).
Il vous est aussi demandé de documenter toutes les entêtes de méthodes introduites (à l'image de ce qui est fait pour le code déjà fourni).
Si vous souhaitez apporter des modifications fondamentales au matériel fourni (par exemple le codage de l'interface graphique), merci de solliciter notre avis au préalable en envoyant un message à cs107@epfl.ch.
Vous pouvez ajouter des images additionnelles libres de droit (et dont la source est référencée dans le README). Ces images devront être de petite taille car la taille de l'archive à rendre sera limitée (2 MB)).
Au cas où vous avez fait des extensions qui seraient bridées par cette limitation, envoyez nous aussi un message (à cs107@epfl.ch) pour que nous puissions étudier la question au cas par cas.
Enoncé
L'énoncé est à votre disposition ici [Lien].
Barème
Il y a quatre étapes à compléter pour la partie obligatoire de ce mini-projet.
La grille ci-dessous vous donne la répartition des points par étape.
|
Maximum possible sur 6 |
Aspects généraux (documentation, README, CONCEPTION)
|
1.5
|
«ICMon» de base (étape 1)
|
3
|
Événements et actions (étape 2)
|
4.75
|
Combats (étape 3)
|
5.75
|
Scénario final (étape 4)
|
6.0
|
Extensions à choix (étape 5, bonus/concours)
|
(bonus, max 20 points)
|
Important:
Le projet est un élément noté. L'échange d'idée entre groupes ou avec des tiers est autorisée et
même recommandée. Par contre, l'échange
de code est strictement interdit ! Le plagiat de code, qui sera contrôlé, sera
considéré comme de la tricherie.
En cas de tricherie, vous recevrez la note «NA» (voir également l'ordonnance sur la discipline).
Dans tous les cas, il est fortement conseillé de pouvoir
expliquer les lignes de code de son projet.