Implementazione del gioco da tavolo Santorini.
Il progetto consiste nell’implementazione di un sistema distribuito composto da un singolo server in grado di gestire una partita alla volta e multipli client (uno per giocatore) che possono partecipare ad una sola partita alla volta utilizzando il pattern MVC (Model-View-Controller). La rete è stata gestita con l'utilizzo delle socket.
Interazione e gameplay: linea di comando (CLI) e grafica (GUI).
I seguenti diagrammi delle classi rappresentano rispettivamente il modello iniziale sviluppato durante la fase di progettazione e i diagrammi del prodotto finale nelle parti critiche riscontrate.
La seguente documentazione include una descrizione per la maggior parte delle classi e dei metodi utilizzati, segue le tecniche di documentazione di Java e può essere consultata al seguente indirizzo: Javadoc
Al seguente link è possibile consultare il report della coverage dei test effettuati con Junit: Report
Libreria/Plugin | Descrizione |
---|---|
Maven | Strumento di automazione della compilazione utilizzato principalmente per progetti Java. |
JavaFx | Libreria grafica per realizzare interfacce utente. |
JUnit | Framework di unit testing. |
- Regole Complete
- CLI
- GUI
- Socket
- 2 FA (Funzionalità Avanzate):
- Persistenza: lo stato di una partita deve essere salvato su disco, in modo che la partita possa riprendere anche a seguito dell’interruzione dell’esecuzione del server.
- Undo: permette a un giocatore di annullare la propria mossa entro un periodo di 5 secondi da quando l’ha effettuata.
I jar sono stati realizzati con l'ausilio di Maven Shade Plugin. Di seguito sono forniti i jar precompilati. Per compilare i jar autonomamente, posizionarsi nella root del progetto e lanciare il comando:
mvn clean package
I jar compilati verranno posizionati all'interno della cartella target/
con i nomi
santorini-client.jar
e santorini-server.jar
.
I Jar del progetto possono essere scaricati al seguente link: Jars.
Questo progetto richiede una versione di Java 11 o superiore per essere eseguito correttamente.
Le seguenti istruzioni descrivono come eseguire il client con interfaccia CLI o GUI.
Per lanciare Santorini Client CLI digitare da terminale il comando:
java -jar santorini-client.jar --cli
Per poter lanciare la modalità GUI sono disponibili due opzioni:
- effettuare doppio click sull'eseguibile
santorini-client.jar
- digitare da terminale il comando:
java -jar santorini-client.jar
Per lanciare Santorini Server digitare da terminale il comando:
java -jar santorini-server.jar [--port <port_number>]
--port
-p
: permette di specificare la porta del server. Se non specificato il valore di default è 16847;