- IR2 / TP noté -


> Premier exercice (/3 pts)

Téléchargez l'exercice ici. Le but général de l'énoncé est de proposer un code flexible, en Java, permettant d'afficher un personnage de jeu vidéo à l'écran.

!! Avant tout, veuillez régler, dans la classe SystemValues, la variable project_path avec le dossier courant de votre projet (là où le programme trouvera le dossier img contenant les images).

Dans un premier temps, on s'occupe de la partie multijoueur du code. Dans la classe Main, trois Player sont créés et exécutés en concurrence. Ces trois Player tentent de se connecter à un Serveur (en le créant) puis demandent au Serveur de leur envoyer un Character afin de pouvoir joueur au jeu. Si tout fonctionnait bien, l'exécution de la fonction start des Player (voir le Main) devrait afficher autant de Character qu'il y a de Player (quatre Character au maximum peuvent être créés par le Serveur), chaque Character ayant une couleur différente :

                 

Si vous exécutez le Main (qui créé trois Player), vous obtiendrez bien l'affichage de trois Character, mais tous de même couleur... En effet, chaque Player créé son propre Serveur, chose que l'on souhaite éviter : il faut que chaque Player se connecte au même Serveur. A vous de modifier le code afin qu'un seul et même Serveur puisse être créé par tous les Player (même si quelqu'un récupère votre code, il ne devrait pas pouvoir "tricher" pour créer plusieurs Serveur), et que, au final, le Main affiche bien trois Character de couleurs différentes.

Attention !! Vous ne pouvez modifier que les classes Player (une seule ligne de code pourra être modifiée dans ce fichier) et Serveur. Dans cette dernière, vous ne devez pas rendre la variable de classe nb_joueurs statique, ni modifier le contenu de la fonction getNewCharacter (mais vous pourrez modifier son entête). Si vous pensez avoir tout modifié comme il faut, mais que vous avez toujours que trois personnages de la même couleur qui apparaissent, regardez justement si vous ne devez pas faire quelque chose à l'entête de cette dernière fonction.


Pensez à sauvegarder votre Main dans un autre fichier, par exemple Main1.java, car vous allez devoir le remplacer à l'exercice suivant.

Continuons avec le second exercice