Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

snegrini/IngSw-Project-2020

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

476 Commits

Repository files navigation

Prova Finale di Ingegneria del Software - AA 2019-2020

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 e 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 puo essere consultata al seguente indirizzo: Javadoc

Coverage report

Al seguente link e 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.

Funzionalita

Funzionalita Sviluppate

  • Regole Complete
  • CLI
  • GUI
  • Socket
  • 2 FA (Funzionalita 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 modalita 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 ]

Parametri

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

Componenti del gruppo

About

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

Topics

Resources

Readme

License

MIT license

Stars

Watchers

Forks

Packages

Contributors