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).
- Simone Pizzarelli
- Matteo Pompilio
- Simone Ronzoni
- Tommaso Tognoli
- 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)
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
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
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
Il seguente Sequence diagram illustra il processo di creazione di una lobby o di join alla stessa, nello specifico tramite CLI
Le seguenti peer review sono state compilate dal gruppo 2
1a PeerReview
2a PeerReview
Le seguenti peer review sono state compilate per il gruppo 32
Peer Review finale
Peer Review iniziale
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
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. |
