• Aucun résultat trouvé

3Cot´epratique 2R´ealisation Projet1G´en´eralit´es Universit´eParisDiderotLangages`aobjetsavanc´esM1Ann´ee2016-2017

N/A
N/A
Protected

Academic year: 2022

Partager "3Cot´epratique 2R´ealisation Projet1G´en´eralit´es Universit´eParisDiderotLangages`aobjetsavanc´esM1Ann´ee2016-2017"

Copied!
3
0
0

Texte intégral

(1)

Universit´ e Paris Diderot Langages ` a objets avanc´ es

M1 Ann´ ee 2016-2017

Projet 1 G´ en´ eralit´ es

Ce projet a pour but la construction d’une plateforme, ou framework, permettant d’impl´ementer plusieurs jeux proches : il s’agit de jeux de d´eplacement de blocs avec diff´erents buts et modalit´es selon le jeu.

Un framework est une sorte de biblioth`eque logicielle dont la caract´eristique principale est l’usage important de diff´erentes formes de g´en´ericit´e et qui d´efinit un cadre encourageant certaines architectures logicielles. Vous noterez que les jeux ont un certain nombre de similitudes ; si votre framework est correctement architectur´e, l’impl´ementation de chaque nouveau jeu s’en trouvera grandement simplifi´ee.

L’obtention de ce framework devra se faire `a l’aide d’une analyse soign´ee des diff´erents jeux.

2 R´ ealisation

Votre code doit ˆetre proprement con¸cu et document´e. Les r´ealisations de tests, de phases de d´emonstrations sont fortement encourag´es. Ne vous lancez pas tout de suite dans l’´ecriture du code ! Commencez par prendre du temps pour analyser comment ces jeux fonctionnent et quelles sont les briques utilis´ees, etc.

L’accent doit ˆetre mis sur l’architecture logicielle, de sorte que le code soit ais´e `a lire et modifier ; ce point est tr`es important car il permettra de v´erifier vos comp´etences dans la maˆıtrise d’un d´eveloppement orient´e objet. Le framework de- vra avoir ´et´e pens´e de sorte qu’on puisse sans trop de difficult´es imaginer comment implanter d’autres jeux du mˆeme type.

On ne vous demande pas d’interface graphique, une interface texte suffira. Si vous avez du temps et que vous voulez quand mˆeme en faire une, rappelez-vous qu’une jolie interface coll´ee sur un mauvais projet ne vous fera pas gagner de points et peut mˆeme vous en enlever si cela d´emontre une mauvaise prise en compte des priorit´es. Commencez donc dans tous les cas, par faire le jeu sous forme d’inter- face texte. Si vous voulez faire une interfae graphique nous vous recommandons la librairie Sfml (cf. page du cours).

3 Cot´ e pratique

Le projet doit ˆetre r´ealis´e enbinˆomes, nous vous en demanderons la constitution tr`es rapidement. Si vous faites le projet seul, vous serez not´e comme si vous ˆetiez en binˆome. Les trinˆomes et autres sont bien sˆur interdit.

La mod´elisation est `a rendre sur Didel sous formatPDF d’ici le 1er D´ecembre, le nom des partcipants au binˆome sera indiqu´e dans le PDF et dans le nom du fichier.

Vous aurez le droit de modifier cette mod´elisation.

Le projet est `a soumettre, sous forme d’une archive (tar ou zip) contenant le nom des participants au binˆome. (Pas d’archive rar). Elle devra contenir :

— les sources de votre programme

— un fichier nomm´e README qui indique comment on se sert de votre pro- gramme ;

1

(2)

— un rapport au formatPDF de quelques pages expliquant concis´ement les par- ties trait´ees, les probl`emes connus, et les pistes d’extensions que vous n’au- riez pas encore impl´ement´ees. Naturellement, il contiendra un diagramme de classes. Vous imprimerez ce rapport pour le jour de la soutenance. La date de rendu du projet vous sera communiqu´ee ult´erieurement.

4 Pr´ esentation des jeux

4.1 Travail ` a r´ ealiser

Vous devez mod´eliser l’ensemble des jeux. Pour la r´ealisation, vous devez faire deux jeux dont 2048 et 2 variantes de 2048.

De plus, pour tous les jeux : vous devez programmer, en plus d’un joueur hu- main, un joueur “robot stupide” qui `a chaque tour, jouera un coup autoris´e (si on peut encore jouer) : le premier que le programme trouve. Il ne s’agit donc pas d’intelligence artificielle !

Par ailleurs, pour tous ces jeux, la taille du plateau doit ˆetre param´etrable.

4.2 Taquin

Le premier jeu est le taquin. Vous en trouverez l’explication `a l’adresse suivante : https://fr.wikipedia.org/wiki/Taquin.

Pour pr´eciser un peu l’explication : Le principe est donc qu’on peut d´eplacer un petit carr´e `a cˆot´e d’un trou `a l’endroit o`u il y le trou, un nouveau trou se formant

`

a l’endroit initial du petit carr´e. Le but du jeu ´etant de remettre les petits carr´es dans l’ordre.

4.3 2048 avec variante

Vous pouvez tester le jeu 2048 original `a l’adresse suivante : http://gabrielecirulli.github.io/2048/.

Br`eve explication : le plateau rectangulaire est compos´e de cases qui sont soit vides soit portent un nombre : une puissance de deux. Lorsqu’on penche ce pla- teau suivant l’un de ses bords, l’ensemble des nombres, soumis `a la gravit´e tombent du mˆeme cot´e. Des nombres ´egaux fusionnent alors pour former un seul nouveau nombre dont la valeur est le double des nombres fusionn´es. Avant le prochain mou- vement, un nouveau nombre (2 ou 4) apparaˆıt au hasard et ainsi de suite. L’objectif est de jouer le plus longtemps possible, et donc d’obtenir les plus grandes valeurs possibles.

Pour ce jeu, en plus du jeu original, nous vous demandons de proposer au moins 2 options/variantes suppl´ementaires, par exemple :

— On accepte d’avoir sur le plateau d’autres nombres que des puissances de deux. Par exemple des 3, des 5 etc. Si la fusion reste possible entre ´egaux, les nombres engendr´es par des 3 resteront incompatibles avec ceux engendr´es par les 2 etc.

— S’il y a des nombres n´egatifs, ceux-ci auront la possibilit´e de d´etruire un nombre oppos´e.

— Les tuiles “×2” multiplient par deux la valeur de la tuile avec laquelle elle fusionne. Sur le mˆeme sch´ema on peut imaginer une tuile “diviser par 2”.

— Certaines tuiles “destroy” ont la particularit´e de supprimer la tuile avec qui elle fusionne quelle que soit sa valeur et de disparaˆıtre ´egalement.

2

(3)

4.4 Sokoban tr` es simplifi´ e

Une explication et une animation du jeu est fournie `a la page suivante https://en.wikipedia.org/wiki/Sokoban

Le but du jeu est pour le personnage de d´eplacer toutes les caisses sur les buts marqu´es (points roses). Il faut tenir compte du fait que le joueur ne peut se d´eplacer que sur des cases vides, qu’il ne peut pousser qu’une caisse `a la fois, et que, bien sˆur, il ne peut pas d´eplacer les murs.

Version `a impl´ementer Dans la version `a impl´ementer, on place de mani`ere al´eatoire un certains nombres de murs, un certains nombre de buts et les emplace- ments initiaux des caisses et du personnage. On ne vous demande pas de v´erifier que le jeu engendr´e a une solution, ni de pr´evoir des fichiers de niveaux.

3

Références

Documents relatifs

Les quatre cas ci-dessous consid` erent les attentes entre deux commutations d’une LED soit par fonction sleep (d´ elai pr´ ed´ efini), soit par un appel ` a une fonction par

La classification automatique (appel´ ee clustering en anglais) est une m´ ethode math´ ematique d’analyse de donn´ ees : pour faciliter l’´ etude d’une population

Sauvegarder votre script R : En activant la fenˆ etre qui le contient (celle du haut ` a gauche : le curseur doit clignoter en noir) puis en allant de nouveau dans la barre de menu

On peut peut ˆ etre expliquer la diff´ erence entre les fluides simples mono ou di- atomique et les macro mol´ ecules par le fait que les chocs entre macromol´ ecules transmettent

Note : dans cet exercice, vous pouvez r´ esoudre les questions 4, 5, 6, mˆ eme si vous n’avez pas r´ epondu aux questions 1, 2 et/ou 3.. Le but de cette question est de montrer

Dire si les affirmations suivantes sont vraies ou

{ 8 comportant des services de MIT dont 5 CHU déclaraient ne pas avoir nommé de référent mais effectuaient des activités équivalentes à celles d’un référent. { 3 hôpitaux

[r]