Skip to content

A semester university project for Software Engineering Technologies & Principles course. The project is about building a borad game with maven buildtool that follows the MVC architectural pattern and implements SOLID principles, clean code principles, unit testing, maven plugins, logging, and other Software Enigneering principles .

Notifications You must be signed in to change notification settings

HanyAyad/Stones-Game-JavaFX-BoardGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

38 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stones Game (Homework Project)

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.

Rules

  • The game is played with two players.

1

  • The board is initially empty.

2

  • Players take turns placing stones onto the board.
  • The stones come in three colors: red, yellow, and green.

4

  • The first player places a red stone onto an empty cell.

3

  • On turns, players can replace a red stone with a yellow stone or a yellow stone with a green stone.

5

  • 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.

6

  • After the game ends, the leaderboard is updated with the Top 5 players based on their wins count.

7

Project tech stack and workflow:

  • 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.

About

A semester university project for Software Engineering Technologies & Principles course. The project is about building a borad game with maven buildtool that follows the MVC architectural pattern and implements SOLID principles, clean code principles, unit testing, maven plugins, logging, and other Software Enigneering principles .

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published