Final project of the Software Engineering course at Politecnico di Milano during 2019/2020 a.y.
Final Score: 30L
The aim of the project is to implement the Santorini game following the model of Model View Controller for the realization of the model according to the object-oriented programming paradigm. The final result completely covers the rules defined by the game and allows you to interact with a command line interface (CLI) and a graphical interface (GUI), the network has been managed with the traditional socket approach.
The following documentation includes the documents created for the design of the problem, first of all the UML diagram will be listed then the documentation of the code (javadoc).
The following class diagrams represent the first, the model according to which the game should have been implemented, the second instead contains the final product diagrams in the critical parts found.
The following documentation includes a description for most of the classes and methods used, it follows Java documentation techniques and can be consulted at the following address: Javadoc
Lib/Plugin | Descripton |
---|---|
maven | management tool for Java project and build automation |
junit | java testing framework |
mockito | testing support tool for create "dummy" object |
JavaFx | java graphics libraries |
Functionality | State |
---|---|
Basic rules | |
Complete rules | |
Socket | |
CLI | |
GUI | |
Multiple games | |
Undo | |
5 Advanced Gods | |
Persistence |
The client can decide to play with a Command Line Interface with his terminal or can choose a Graphics User Interface. His decision is independent of the others. All dependency are managed by Maven when build the jars.
To run, requires at least Java 9 (Version 53).
For a better experience is recommended a terminal that support ANSI escape code (WSL, Linux).
To launch the client with CLI use the following command:
java -jar GC49-1.0-CLI.jar [parameter1] [parameter2]
parameter1
: "server ip" (if null ip will be localhost).parameter2
: "server port" (if null port will be 12345)
To run, requires at least Java 10 (Version 54).
Since WSL does not support graphical user interface, to run it is recommended to use cmd.exe.
To launch the client with GUI use the following command:
java -jar GC49-1.0-GUI-jar-with-dependencies.jar
To run, requires at least Java 9 (Version 53).
To launch the client with GUI use the following command:
java -jar GC49-1.0-SERVER.jar [parameter1] [parameter2]
parameter1
: "server ip" (if null ip will be localhost).parameter2
: "server port" (if null port will be 12345)
In Maven there are 3 profile: server, cli, gui.
To create server's and cli's jar
- Go to Maven
- Select the server/cli profile
- Launch the following maven command:
mvn clean install
- The jar will be in deliveries folder
To create gui's jar
- Go to Maven
- Select the gui profile
- Launch the following maven command:
mvn clean compile assembly:single
- The jar will be in target folder