Projet 2 : Développement du jeu Puissance X avec interface et robot


Sujet : Dans ce projet, j’ai conçu une version du jeu Puissance X en Java, jouable à la fois via une interface console et avec une interface graphique, en m’appuyant sur le framework Boardifier. L’objectif était de permettre aux joueurs d’interagir facilement avec le jeu tout en respectant les règles classiques du Puissance 4, adaptées à une grille personnalisable. Une extension avec un robot joueur a également été intégrée.

Ce projet m’a permis de consolider mes compétences en programmation orientée objet, en interaction homme-machine (IHM), ainsi qu’en conception logicielle structurée.


Figure 1 : Affichage en mode texte et détection d'une entrée invalide dans le jeu Puissance X
Figure 1 : Affichage en mode texte et détection d'une entrée invalide dans le jeu Puissance X

Trace :

La Figure 1 montre une capture d’écran de l’interface console du jeu, réalisée dans l’IDE IntelliJ. On y voit la grille affichée en mode texte, avec une tentative de saisie invalide ("A") par le joueur 1. Le programme détecte l’erreur et affiche un message : "Please enter a valid integer".

Cette fonctionnalité repose sur l’utilisation d’un Scanner pour lire l’entrée clavier, accompagnée d’un bloc de validation qui contrôle si l’entrée est un entier attendu. Une boucle permet de redemander la saisie tant qu’elle est incorrecte, évitant ainsi les plantages du programme.

Ce composant du projet met en lumière des notions clés comme la gestion des entrées utilisateur, la robustesse du code face aux erreurs, et la mise en œuvre de structures conditionnelles efficaces pour garantir une bonne expérience de jeu.

Figure 2 : Organisation du projet selon le modèle MVC (Modèle-Vue-Contrôleur)
Figure 2 : Organisation du projet selon le modèle MVC (Modèle-Vue-Contrôleur)

Trace :

La Figure 2 illustre l’organisation du projet selon le paradigme MVC. Dans la partie gauche, on distingue trois dossiers principaux : model, view et controller, chacun correspondant à un rôle précis dans l’application. Ce découpage structurel est imposé par le framework Boardifier, facilitant la séparation des responsabilités.

Dans la partie droite, on aperçoit le code de l’initialisation du jeu : le modèle (la logique du plateau et des règles), la vue (l’affichage), et le contrôleur (la gestion des actions du joueur) sont instanciés séparément, puis interconnectés.

Cette figure met en valeur mon appropriation d’un modèle d’architecture logicielle robuste, l’utilisation de l’héritage et du polymorphisme, ainsi qu’une bonne organisation modulaire du code. L’approche MVC a permis une meilleure lisibilité du projet, une évolution plus facile, et une possible extension vers d’autres interfaces (par exemple une IHM graphique ou une intelligence artificielle pour jouer automatiquement).