Ce projet a pour objectif de développer un bot capable de jouer automatiquement au Démineur. Il analyse l’état du plateau pour prendre des décisions logiques, comme cliquer sur une case ou y placer un drapeau, en se basant sur les informations visibles. Le projet a été développé par étapes, avec plusieurs versions successives permettant d’améliorer la logique et la flexibilité du bot.
Réalisation d’un mini-labyrinthe en Java, où un objet (O) se déplace sur une grille chargée depuis un fichier (grille.data). L’objet ne peut ni sortir du plateau ni traverser les murs. J’ai implémenté une classe Labyrinthe permettant l’affichage de la grille et le déplacement selon les directions (N, S, E, O).
Extension du projet précédent avec l’ajout d’une sortie (@) et l’introduction de l’architecture MVC (Modèle-Vue-Contrôleur).
De plus nous avons fait l'ajout de méthodes d’accès sécurisées à la grille, tout en garantissant son intégrité (pas d’accès direct à la grille complète).
Pour cette troisième étape, j’ai intégré une interface graphique (GUI) à mon labyrinthe Java, permettant de
contrôler l’objet via les flèches directionnelles.
En m’appuyant sur une fiche pédagogique fournie, j’ai conçu un contrôleur graphique basé sur la classe
FrameGrille, et utilisé des images 30x30 pour représenter les éléments du labyrinthe.
Le modèle (Labyrinthe) n’a pas été modifié : l’interface se contente d’interagir via le contrôleur. Ce projet
m’a initié à la conception d’interfaces graphiques en Java et à la gestion des événements clavier.
Dans cette dernière version, j’ai amélioré l’affichage du labyrinthe en distinguant visuellement les différents
types de murs à l’aide d’images variées (40×40).
L’interprétation graphique est désormais gérée dans le contrôleur, qui détermine quelle image utiliser selon le
voisinage de chaque mur.
Le modèle (Labyrinthe) reste inchangé, mais l’interface graphique devient plus immersive. J’ai également ajouté
un compteur de déplacements visibles à l’écran. Ce projet m’a permis d’approfondir la séparation entre les
couches métier et interface.