Implementazione del gioco da tavolo Eriantys.
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.
Il seguente documento presenta una descrizione dettagliata del protocollo di rete da noi implementato:
La seguente documentazione include una descrizione per la maggior parte delle classi e dei metodi utilizzati, segue le tecniche di documentazione di Java.
La percentuale di testing del model del gioco è pari a:
- al 90% per le enum con una coverage dei metodi del 54.2% e delle righe di codice pari al 69.4%
- al 100% per il package model con una coverage dei metodi del 86.2% e delle righe di codice del 86.1%
- al 100% per il package riguardante la board con una coverage dei metodi del 77.8% e delle righe del 75.5%
- al 100% per il package riguardante la plancia giocatore con una coverage dei metodi del 83.3% e delle righe del 80.8%
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.
- Carte Personaggio: il gioco può essere giocato in due diverse modalità: modalità facile e modalità esperto. Quest'ultima, oltre a mantenere le stesse regole e componenti della modalità facile, aggiunge la possibilità di utilizzare delle carte esperto, che influenzano la partita mediante specifici effetti.
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
PSP68-client.jar
e PSP68-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 Eriantys Client CLI digitare da terminale il comando:
java -jar PSP68-client.jar --cli
Per poter lanciare la modalità GUI sono disponibili due opzioni:
- effettuare doppio click sull'eseguibile
PSP68-client.jar
- digitare da terminale il comando:
java -jar PSP68-client.jar
Per lanciare Eriantys Server digitare da terminale il comando:
java -jar PSP68-server.jar [--port <port_number>]
--port
-p
: permette di specificare la porta del server. Se non specificato il valore di default è 16847;
Le peer review a noi fatte:
Le peer review da noi fatte: -peer review riguardante l'uml iniziale -peer review riguardante il protocollo di rete