Skip to content

rafaktor/BattleShip

Repository files navigation

BattleShip - Jeu de Bataille Navale

Jeu de bataille navale multijoueur en Java avec interface graphique JavaFX, IA strategique et reseau WebSocket.

Java JavaFX Maven JUnit SQLite

Fonctionnalites

  • 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

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)

Documentation UML

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

Technologies

  • 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

Lancement

# Compiler
mvn clean compile

# Lancer les tests
mvn test

# Lancer le jeu
mvn javafx:run

Contact

Rafael Rodriguez - rafaelrodriguez.ca - LinkedIn

About

Multiplayer naval battle game in Java with JavaFX, WebSocket networking, AI strategies, and SQLite persistence

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages