snegrini / IngSw-Project-2020

Prova Finale di Ingegneria del Software - Polimi Ingegneria Informatica - A.A. 2019-2020

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Prova Finale di Ingegneria del Software - AA 2019-2020

alt text

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

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.

JavaDoc

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

Coverage report

Al seguente link è possibile consultare il report della coverage dei test effettuati con Junit: Report

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.
    • Undo: permette a un giocatore di annullare la propria mossa entro un periodo di 5 secondi da quando l’ha effettuata.

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 santorini-client.jar e santorini-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.

Santorini Client

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

CLI

Per lanciare Santorini Client CLI digitare da terminale il comando:

java -jar santorini-client.jar --cli

GUI

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

Santorini Server

Per lanciare Santorini Server digitare da terminale il comando:

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

Parametri

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

Componenti del gruppo

About

Prova Finale di Ingegneria del Software - Polimi Ingegneria Informatica - A.A. 2019-2020

License:MIT License


Languages

Language:Java 97.7%Language:CSS 2.3%