Giter VIP home page Giter VIP logo

ingsw-project-2020's Introduction

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

ingsw-project-2020's People

Contributors

andrealanzi-polimi avatar dependabot[bot] avatar samuelkala avatar snegrini avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ingsw-project-2020's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.