Skip to content

TrespH/MyShelfie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Prova finale d'Ingegneria del Software - AA 2022-2023

Introduzione

Implementazione del gioco da tavolo MyShelfie.

Il progetto consiste nell’implementazione di un sistema distribuito composto da un server in grado di gestire più partite alla volta da 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 di socket e RMI.

Interazione e gameplay: è possibile giocare a MyShelfie sia tramite linea di comando (CLI) che tramite grafica interattiva (GUI).

Componenti

  • Simone Pizzarelli
  • Matteo Pompilio
  • Simone Ronzoni
  • Tommaso Tognoli

Funzionalità sviluppate

  • Regole del gioco complete (incluse tutte le carte obiettivo comuni e personali)
  • Socket
  • RMI
  • CLI e GUI
  • Partite a due, tre e quattro giocatori
  • Partite multiple
  • Chat tra i giocatori (CLI e GUI)

Come eseguire i JAR

i file jar sono disponibili qui

  • Per CLI e GUI:

    • Aprire il command prompt all'interno della cartella jarfiles
    • Eseguire il seguente codice:
    • java --module-path ./softeng_gc42_jar_Client/javafx-sdk-20.0.1/lib --add-modules javafx.controls,javafx.fxml -jar ./softeng_gc42_jar_Client/softeng-gc42-client.jar
    • Dopodichè selezionare CLI o GUI a seconda della modalità desiderata
  • Per il SERVER:

    • Aprire il command prompt all'interno della cartella jarfiles
    • Eseguire il seguente codice:
    • java -jar .\softeng_gc42_jar_Server\softeng-gc42-server.jar

Documentazione

La documentazione consultabile include una descrizione per la maggior parte delle classi e dei metodi utilizzati, segue le tecniche di documentazione formali di Java e può essere consultata al seguente indirizzo: Javadoc

UML

I seguenti diagrammi delle classi (con le relative documentazioni) rappresentano rispettivamente il modello iniziale sviluppato durante la fase di progettazione e i diagrammi del prodotto finale nelle parti critiche riscontrate.
UML finale e documentazione
UML iniziale

RMI e Socket

Il seguente Sequence diagram illustra il processo di creazione di una lobby o di join alla stessa, nello specifico tramite CLI

Peer review ricevute

Le seguenti peer review sono state compilate dal gruppo 2
1a PeerReview
2a PeerReview

Peer review redatte

Le seguenti peer review sono state compilate per il gruppo 32
Peer Review finale
Peer Review iniziale

Testing e coverage

Sono stati effettuati testing di coverage con Junit con copertura pari al circa al 92% dei metodi e al 91% delle righe di codice del Model.

ulteriori dettagli sono reperibili qui

Librerie e plugins

Si è scelto di utilizzare il minimo numero di librerie e dipendenze esterne.

Libreria/Tool Versione Descrizione
Maven 3.8.1 Strumento di automazione della compilazione utilizzato principalmente per progetti Java.
Gson 2.10.1 Libreria atta alla gestione dei file Json.
JavaFx 19.0.2 Libreria grafica per realizzare interfacce utente.
JUnit 4.13.2 Framework di unit testing.
Scenebuilder 19.0.0 Tool per una più veloce creazione di strutture fxml.

About

Software Engineering final project, Polimi 2023

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors