Jeu de bataille navale multijoueur en Java avec interface graphique JavaFX, IA strategique et reseau WebSocket.
- Deux modes de jeu : vs IA (debutant / avance) et humain vs humain en ligne
- Interface graphique JavaFX : Grille interactive, placement drag & drop, animations
- IA avancee : Strategie intelligente avec exploration des cases adjacentes apres un tir reussi
- Multijoueur en ligne : WebSocket avec matchmaking automatique et decouverte de services (JmDNS)
- Persistance : Sauvegarde SQLite des parties, statistiques et historique
- Tests : JUnit 5 avec couverture JaCoCo (objectif 80%+)
Architecture en couches inspiree de l'architecture hexagonale (Ports & Adapters) combinee avec MVC :
src/main/java/
├── domain/ # Entites metier (Grille, Joueur, Flotte, Partie)
├── application/ # Logique applicative (MoteurDeJeu, Matchmaking)
├── ia/ # Strategies IA (Debutant, Avancee)
├── reseau/ # Couche reseau (WebSocket, decouverte de services)
├── persistance/ # Acces aux donnees (SQLite)
└── ui/ # Interface graphique (JavaFX)
Le dossier docs/ contient les diagrammes PlantUML :
| Diagramme | Description |
|---|---|
classes/ |
Modele de domaine |
sequences/ |
Jouer un coup, placer navires, connexion, partie IA |
components/ |
Diagramme de composants |
packages/ |
Organisation des packages |
deployment/ |
Diagramme de deploiement |
usecases/ |
Cas d'utilisation |
architecture/ |
Architecture logicielle |
- Langage : Java 17
- UI : JavaFX 21
- Build : Maven
- Tests : JUnit 5 + JaCoCo
- Base de donnees : SQLite (JDBC)
- Reseau : Java WebSocket + JmDNS
- Serialisation : Jackson (JSON)
- Diagrammes : PlantUML
# Compiler
mvn clean compile
# Lancer les tests
mvn test
# Lancer le jeu
mvn javafx:runRafael Rodriguez - rafaelrodriguez.ca - LinkedIn