It consists of the implementation of a distributed system composed of a single server capable of managing more games at a time and multiple clients (one per player) using the MVC pattern (Model-View-Controller).
Group: PSP-35
The team:
Feature | Implemented |
---|---|
Complete rules | ✔️ |
CLI | ✔️ |
GUI | ✔️ |
Socket | ✔️ |
RMI | ✔️ |
Multiple matches (FA 1) | ✔️ |
Resilience to disconnections (FA 2) | ✔️ |
Chat (FA 3) | ✔️ |
Almost all model
and controller
classes have a class and method coverage of 100% (except for trivial methods like getters and setters).
Package | Class | Coverage (lines) |
---|---|---|
Model | Entire Package | 95% (821/856) |
Controller | Entire Package | 92% (364/395) |
Controller | clientController | 91% (140/153) |
Controller | gameController | 87% (57/65) |
Controller | serverController | 94% (143/151) |
To successfully execute the .jar
applications, which it can be found here, both Windows and Java 20 are required.
If you wish to compile the project independently, it is necessary to either download the GitHub repository or clone it using the following command:
git clone https://github.com/TheICSDI/ing-sw-2023-Gervatini-Grassi-Motti-Montuori.git
Afterwards, it can be compiled using your IDE of choice, provided with the required dependencies, java-20-openjdk
and javafx-sdk-20.0.1
.
Once installed all requirements and/or compiled the project, open a terminal and
go to the .jar
files directory.
Once there it is possible to choose to run the server or the client (CLI or GUI):
java -jar Server.jar [-i <Your IPv4> | --ip <Your IPv4>]
- If the parameters
ip
ori
are omitted, the server will run onlocalhost
.
java -jar Client.jar -c
or
java -jar Client.jar --cli
java -jar Client.jar
To run the Client (GUI) it is also possible to open the JAR file directly from the file explorer.
WARNING: For the best GUI experience it is strongly suggested to play with a screen resolution of 1920x1080 (100% DPI) and with a scaling of 100%.
This project is developed in collaboration with Politecnico di Milano and Cranio Creations.
NOTA: My Shelfie è un gioco da tavolo sviluppato ed edito da Cranio Creations Srl. I contenuti grafici di questo progetto riconducibili al prodotto editoriale da tavolo sono utilizzati previa approvazione di Cranio Creations Srl a solo scopo didattico. È vietata la distribuzione, la copia o la riproduzione dei contenuti e immagini in qualsiasi forma al di fuori del progetto, così come la redistribuzione e la pubblicazione dei contenuti e immagini a fini diversi da quello sopracitato. È inoltre vietato l'utilizzo commerciale di suddetti contenuti.