Java implementation of the table game Eriantys by the italian company Cranio Creations as part of the Bachelor of Science thesis. This is formally part of the Software Engineering course at Politecnico di Milano (A.Y. 2021 / 2022). The aim of this project is the design and realization of a distributed client-server software based on object-oriented programming, using the MVC (Model-View-Controller) design model.
More information about the game can be found here
- The game requires Java 17 to run.
- In order to properly display the CLI client an UTF-8 and ANSI colors compatible shell is needed.
- To build the project, Maven is required.
The features we have realized are listed as follows:
- Base rules ☑️
- Complete rules ☑️
- Socket ☑️
- CLI ☑️
- GUI ☑️
- Additional feature - 12 character cards ☑️
- Additional feature - Multiple games ☑️
- Additional feature - Disconnection recovery ☑️
- The project is build as an Uber-jar that is comprehensive of CLI, GUI and Server.
- The executable provides a small launcher with all the options, no arguments are needed to run it. After cloning the repo, build the project by running:
cd ing-sw-2022-preatoni-sarrocco-vacca
mvn clean package
You will find the output jar in the newly created "target" folder with the name GC30-1.0-SNAPSHOT-jar-with-dependencies.jar.
To run the jar executable just issue this command in the console:
java -jar GC30-1.0-SNAPSHOT-jar-with-dependencies.jar
For AArch64-based Macs we have provided a specific jar. This is due to a JavaFX dependency conflict, as explained here.
On Windows, if don't plan on using the Windows Terminal app, in order to properly display the CLI client you should enable the console UTF-8 character encoding beta feature.
In this section you will find all the documentation regarding the project:
- Initial MVC diagram
- Final - Model
- Final - Controller
- Final - Listeners
- Final - Client and Server
- Initial Sequence Diagram
You can find our JavaDocs in the following link
Libraries/Plugin | Description |
---|---|
maven | Project management tool that is based on POM (project object model) |
junit | Unit testing framework for the Java programming language |
JavaFx | Java set of graphics and media packages |
UML-Generator | Usefull plugin for autogenerate UML by the source code |
Lucidchart | UML drawing tool |