The goal of the project is to implement the board game Santorini in the Java language, following the architectural pattern Model-View-Controller and following the object-oriented programming paradigm. The final result completely covers the rules defined by the game and allows to interact with it both from the command line (CLI) and the graphic interface (GUI). The network has been managed by the socket approach.
HTML documentation that reports in detail the overall test coverage achieved by the single packages and classes. The Model has been strongly tested, and it reaches a 99% statement coverage. It is available at the following address: Report
The following classes' diagrams represent respectively the initial model's project, updated to reflect the current state, and the final diagrams of the entire project, generated by the IntelliJ's tool.
The following documentation includes a description of the used classes and methods, it follows the Java documentation techniques and it is available at the following address: Javadoc
The following jar files permit the game launch according to the functionalities required by the project assignment. The functionalities are listed on the Functionalities section, and the details on how to launch the jar files are defined on the Jar Execution section. The files .jar of Client and Server are available at the following address: Jar
Library/Plugin | Description |
---|---|
maven | tool to manage softwares based on Java and build automation |
maven-shade-plugin | plugin to create an uber-jar |
junit | framework dedicated to Java for unit testing |
JavaFx | Java's graphic library |
- Complete Rules
- CLI
- GUI
- Socket
- Multiple Games
- Advanced Gods
To execute the server digit the following command on the terminal:
java -jar serverApp.jar
The used predefined port is 9090.
The client is executed choosing the interface to play with, the possible choices are the command line or graphic interface. The following sections describe how to execute the client in both ways.
For a better command line game experience it is necessary to launch the client by a terminal that supports UTF-8 encoding and ANSI escapes. To launch the client on CLI's modality digit the following command:
java -jar clientApp.jar -cli
The necessary dependencies to run javaFX for the main operating systems (Windows, macOs, Linux) have already been added to the pom, so the client is cross-platform. To launch the client with the graphic interface double click on the jar, or digit on the terminal:
java -jar clientApp.jar