:: Enseignements :: ESIPE :: E4INFO :: 2007-2008 :: Java Avancé ::
[LOGO]

Projet de java avancé


HMM2000

Le but de ce projet est de réaliser un jeu proche du jeu heroes of might and magic. Le jeu se passe dans l'univers médiéval fantastique et met en scène des héros à la solde d'un seigneur accompagnés d'une armée qui parcourt la carte à la recherche de richesses et à la conquête d'autres royaumes.

Bibliothèque graphique

Le projet est à réaliser avec la bibliothèque graphique lawrence. Elle prend en charge toute la partie graphique de la manière suivante:

Un exemple de jeu de chasse à la grenouille est disponible sur le site web de lawrence.

Il n'est pas autorisé de gérer l'affichage graphique par un autre moyen, ni de modifier ou recopier le code du paquetage, ni de placer ses propres classes dans le paquetage fr.umlv.lawrence.

Éléments du jeu

La carte contient les éléments:

Les acteurs du jeu sont les suivants:

Le château

Chaque joueur possède initialement un chateau. Dans ce chateau, le joueur peut recruter des héros, recruter des créatures (pour un fixe) ou améliorer son chateau afin qu'il produise de nouvelles créatures plus puissantes. Le type des créatures est donné par le type du château et initialement, seul le type le plus simple de créature y est disponible. Le joueur peut construire des bâtiments (pour un coût et un certain nombre de jours) dans le château qui permettent:

On peut ensuite améliorer chaque bâtiment pour augmenter les valeurs des créatures recrutées.

Combats

Quand un combat a lieu, soit entre deux héros, soit entre un héro et un château, soit entre un héros et une troupe de monstres, chaque opposant a ses unités sur deux lignes, la première et la seconde. La disposition est prévue à l'avance par les joueurs, sauf si le héro est un chef de guerre et dans ce cas il peut changer la disposition après avoir vu les crétures de l'ennemi et leur disposition. Quand la première ligne est vide, la deuxième ligne compte comme si c'était la première.

Les attaques peuvent être physiques ou élémentaires (feu, froid, foudre, etc.) Les créatures possèdent des points d'attaque pour chaque élément et les dommages physiques, des résistances (en pourcentage) aux éléments, des points de défense et des points de vie. Quand une créature en attaque une autre, le calcul est le suivant: celle qui reçoit l'attaque perd autant de points de vie que la somme des attaques de l'attaquant diminué par la résistence aux éléments à laquelle on soustrait ses points de défense, si bien sûr ce total est positif. Par exemple, si une créature fait 10 points d'attaque de feu et 10 points d'attaque physique à un créature qui a un résistance de 30% au feu et 5 de défense, elle perd (10+10×70%)-5=12 points de vie (note: 70=100-30).

Les créatures magiques font des attaques élémentaires et/ou physiques et peuvent attaquer les premières lignes adverses même à partir de la seconde ligne. Les fantassins font des dégats physiques et ne peuvent attaquer que de la première ligne à la première ligne adverse et les créatures volantes font des dégâts physiques de n'importe quelle ligne à n'importe quelle autre. Au dernier niveau d'amélioration du château ou pour les mercenaires recrutés dans les arènes, on peut ajouter des dommages élémentaires aux créatures volantes et aux fantassins.

Les héros peuvent agir de la manière suivante:

Les combats on lieu en tour par tour: à chaque tour, le joueur peut choisir de faire jouer soit une créature soit le héros s'il n'a pas déjà attaqué. Ainsi, le joueur qui a le plus de créatures finira par jouer la fin de la manche tout seul. Un fois que toutes les créatures ont joué ou passé, on recommence une nouvelle manche. On s'arrête quand l'un des camps n'a plus de créature (on ne peut pas tuer le héro, mais le héro qui perd la bataille s'enfuit et n'est jamais retrouvé).

Quand un joueur attaque une troupe de créatures, c'est le joueur qui commence, quand un joueur attaque un château, c'est le défenseur qui commence et quand un joueur attaque un héro adverse, c'est le défenseur qui commence sauf si un seul des héros est un seigneur de guerre, c'est dans ce cas le joueur qui le contrôle qui commence. Quand on attaque un château, il peut ne pas y avoir de héro, mais au plus un seul héro le défend.

Jour de jeu

Pendant un jour, un joueur déplace chacun de ses héros (dont le nombre de cases dépend de la plus lente des créatures de son armée) qui peut donc visiter plusieurs lieux et effectuer plusieurs combats, effectue d'éventuelles améliorations de son château (un seule en cours à la fois) et recrute des créatures au château (qui sont donc initialement placées dans le château) et transférer des créatures entre héros qui se recontrent ou entre le chateau et un héro quand ce dernier y retourne. Le mouvement des héros se fait par clic et il est faut utiliser le projet d'algorithmique pour le calcul du plus court chemin; il est autorisé de prendre le projet de quelqu'un d'autre à condition de le placer dans un jar séparé et de le préciser dans le rapport dev.pdf. Le chemin suivi par le héro doit être affiché au joueur pour qu'il décide ou non de confirmer le déplacement.

Rendu

Le projet est à rendre par mail aux chargés de TD et à l'enseignant de cours, pour la date fixé par l'agenda des projets. Le format de rendu est une archive au format zip (tout rar, tar.gz, 7z et autre ne sera pas ouvert) contenant:

Notation