Stones Game is a two-player game played on a 3*3 board. The objective of the game is to have three stones of the same color in a row, column, or diagonal.
- The game is played with two players.
- The board is initially empty.
- Players take turns placing stones onto the board.
- The stones come in three colors: red, yellow, and green.
- The first player places a red stone onto an empty cell.
- On turns, players can replace a red stone with a yellow stone or a yellow stone with a green stone.
- The game ends when a player has three stones of the same color in a row, column, or diagonal.
- The player who makes the winning move wins the game.
- After the game ends, the leaderboard is updated with the Top 5 players based on their wins count.
- JavaFX SceneBuilder was used to build the Graphical User Interface.
- The project was built using Maven buildtool, following Model-View-Controller (MVC) architectural pattern, and implementing all SOLID principles and clean code principles. Unit tests were made for the model classes using JUnit5.
- Plugins like Maven Javadoc, Maven JXR, Maven Checkstyle, Maven Surefire Report, JaCoCo Maven were used to generate reports to be displayed on project site.
- Jackson JSON processor was used to store game results in a json file to maintain a form of database.
- Tinylog 2 framework was used to perform lightweight logging for the project.