Licence Informatique 2e année
Programmation Objet I
Sujet du projet 2020-2021
1 Organisation
Le projet est à réaliser en binôme. En fin de semestre, les binômes présenteront leur travail aux encadrants de TP. Lors des présentations, chaque binôme rendra un rapport qui présentera le travail réalisé. Chaque binôme devra également, au moment des soutenances, envoyer le code des programmes écrits aux responsables de TP (christine.irastorza[@]u-picardie.fr, jean- luc.guerin[@]u-picardie.fr et frederic.furst[@]u-picardie.fr).
La note du projet dépendra en bonne partie du respect des principes de modularité, abstraction, encapsulation et documentation.
2 Sujet
Le projet consiste à réaliser un jeu de course de voiliers. La carte du jeu (réaliste ou non) est divisée en zone, chaque zone ayant ses propres caractéristiques de vent (direction et vitesse) de courant (direction et vitesse) et de hauteur de vague.
Sur cette carte circulent des bateaux, gérés par les joueurs (ou par le programme). Les joueurs peuvent choisir le cap de leur bateau, et la voile (génois, spinnaker, trinquette, etc). La vitesse du bateau dépend de l’orientation du bateau par rapport au vent, du courant et de la hauteur des vagues. Il n’y a pas besoin que le calcul de la vitesse soit réaliste. Il doit y avoir plusieurs sortes de bateaux, avec pour chaque type un calcul de vitesse différent.
Selon l’état de la mer (hauteur des vagues) et la vitesse du bateau, il peut y avoir des avaries, et éventuellement le bateau peut couler.
L’interface graphique doit afficher la carte et les bateaux (sous forme de triangles pointés vers le cap du bateau par exemple). On doit pouvoir obtenir pour chaque zone de la carte les informations concernant le vent, le courant et la hauteur des vagues.
On peut s’inspirer du jeu Virtual Regatta : www.virtualregatta.com
Remarque : le calcul de la vitesse des bateaux n'a pas besoin d'être réaliste. On peut par exemple considérer que la vitesse d'un bateau est celle du courant local, plus un pourcentage de celle du vent selon l'angle entre le cap du bateau et la direction du vent. Ci-dessous un exemple de calcul en cas de vent arrière (on peut prendre des coefficient plus faible au près, c'est-à-dire quand le vent vient de l'avant du bateau).
3 Pour aller plus loin …
On peut sauvegarder les parties dans un fichier pour y rejouer plus tard.
On peut faire varier le vent, les courants et la hauteur des vagues au fur et à mesure que le jeu avance. On peut gérer les phénomènes météorologiques (dépression, anticyclone) à un niveau plus large que les zones de la carte.
On peut ajouter des mécanismes de jeu comme le sauvetage : si un bateau (contrôlé par un joueur ou par le programme) coule, les autres bateaux à proximité doivent se dérouter pour porter secours au naufragé et secourir un marin rapporte des points en plus.
On peut ajouter des icebergs ou des OFNI (Objets Flottants Non Identifiés) qui provoquent des dégats si les bateaux les heurtent.
On peut ajouter du son avec des bruits de vague ou de goélands.
Tout ce qui vous passe par la tête et vous apprend à programmer en POO …