Skip to content

SaladSlayer00/Eriantys-The-Videogame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prova Finale di Ingegneria del Software - AA 2021-2022

alt text

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).

Documentazione

UML

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.

Protocollo di rete

Il seguente documento presenta una descrizione dettagliata del protocollo di rete da noi implementato:

JavaDoc

La seguente documentazione include una descrizione per la maggior parte delle classi e dei metodi utilizzati, segue le tecniche di documentazione di Java.

Testing coverage

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%

Librerie e Plugins

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.

Funzionalità

Funzionalità Sviluppate

  • 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.

Compilazione e packaging

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.

Jars

I Jar del progetto possono essere scaricati al seguente link: Jars.

Esecuzione

Questo progetto richiede una versione di Java 11 o superiore per essere eseguito correttamente.

Eriantys Client

Le seguenti istruzioni descrivono come eseguire il client con interfaccia CLI o GUI.

CLI

Per lanciare Eriantys Client CLI digitare da terminale il comando:

java -jar PSP68-client.jar --cli

GUI

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

Erantys Server

Per lanciare Eriantys Server digitare da terminale il comando:

java -jar PSP68-server.jar [--port <port_number>]

Parametri

  • --port -p : permette di specificare la porta del server. Se non specificato il valore di default è 16847;

Peer Review

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

Componenti del gruppo

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published