Gomoku (Five in a Row) is a strategy board game for two players. This project implements it in Java with both a console mode and a graphical interface (Minecraft-themed).
Note: This was my first Java project and my first time working with event-driven programming (Swing). The code is far from perfect and should not be taken as a reference — it's a learning project above all.
- Console and GUI modes
- Single player (vs AI), two players, or AI vs AI
- Customizable board size and win conditions
- Save and load system
- Minecraft-themed graphics with Enderman sprites, block textures, sound effects and custom font
.
├── code/
│ └── Gomoku/
│ └── src/
│ └── fr/motatrechot/
│ ├── game/ # Game logic (Main, Game, Board, Cell, Player, Piece, IA, Sauvegarde)
│ └── gui/ # Graphical interface (AccueilGUI, SettingsGameGUI, GameGUI, etc.)
├── GUI/ # Graphics, sounds and font resources
├── saves/ # Save files
├── run.sh # Compilation and execution script (Linux)
└── Rapport.pdf # Project report (french)
chmod +x run.sh
./run.shThe script automatically compiles the project, moves the required resources (GUI/, saves/) into the out/ directory, and launches the game.
cd code/Gomoku/src
javac -d ../../../out fr/motatrechot/game/*.java fr/motatrechot/gui/*.javaThen run:
cd ../../../out
java -cp . fr.motatrechot.game.Main- For the GUI to work outside of an IDE, the
GUI/andsaves/folders must be placed inside theout/directory alongside the compiled.classfiles. - If using an IDE like IntelliJ, these resources are automatically accessible via the classpath — no manual setup needed.
- The save/load feature only works when the project structure is correctly set up (see above).
out/
├── fr/
│ └── motatrechot/
│ ├── game/
│ │ └── *.class
│ └── gui/
│ └── *.class
├── GUI/
│ ├── start.png
│ ├── sound on.png
│ ├── enderman/
│ │ ├── red_left.png
│ │ └── ...
│ ├── blocks/
│ ├── sound/
│ └── ...
└── saves/
└── sauvegardeTest.txt
Le Gomoku (Cinq en ligne) est un jeu de plateau stratégique pour deux joueurs. Ce projet l'implémente en Java avec un mode console et une interface graphique (thème Minecraft).
Note : Il s'agit de mon tout premier projet en Java et de ma première approche de la programmation événementielle (Swing). Le code est loin d'être parfait et ne doit pas être pris comme référence — c'est avant tout un projet d'apprentissage.
- Modes console et graphique
- Un joueur (contre l'IA), deux joueurs, ou IA contre IA
- Taille du plateau et conditions de victoire personnalisables
- Système de sauvegarde et de reprise de partie
- Graphismes thème Minecraft avec sprites Enderman, textures de blocs, effets sonores et police personnalisée
.
├── code/
│ └── Gomoku/
│ └── src/
│ └── fr/motatrechot/
│ ├── game/ # Logique du jeu (Main, Game, Board, Cell, Player, Piece, IA, Sauvegarde)
│ └── gui/ # Interface graphique (AccueilGUI, SettingsGameGUI, GameGUI, etc.)
├── GUI/ # Ressources graphiques, sons et police
├── saves/ # Fichiers de sauvegarde
├── run.sh # Script de compilation et d'exécution (Linux)
└── Rapport.pdf # Rapport du projet
chmod +x run.sh
./run.shLe script compile automatiquement le projet, déplace les ressources nécessaires (GUI/, saves/) dans le dossier out/, et lance le jeu.
cd code/Gomoku/src
javac -d ../../../out fr/motatrechot/game/*.java fr/motatrechot/gui/*.javaPuis lancez le jeu :
cd ../../../out
java -cp . fr.motatrechot.game.Main- Pour que l'interface graphique fonctionne en dehors d'un IDE, les dossiers
GUI/etsaves/doivent être placés dans le dossierout/aux côtés des fichiers.classcompilés. - Si vous utilisez un IDE comme IntelliJ, ces ressources sont automatiquement accessibles via le classpath — aucune manipulation nécessaire.
- Le système de sauvegarde/reprise ne fonctionne que si la structure du projet est correctement respectée (voir ci-dessus).
out/
├── fr/
│ └── motatrechot/
│ ├── game/
│ │ └── *.class
│ └── gui/
│ └── *.class
├── GUI/
│ ├── start.png
│ ├── sound on.png
│ ├── enderman/
│ │ ├── red_left.png
│ │ └── ...
│ ├── blocks/
│ ├── sound/
│ └── ...
└── saves/
└── sauvegardeTest.txt