Implementazione del gioco da tavolo My Shelfie. Il progetto è stato sviluppato per il corso di Ingegneria del Software 2022/2023 presso il Politecnico di Milano. Il progetto consiste in un'applicazione Java che permette di giocare a My Shelfie in modalità Multiplayer (2-4) e Online. Il rete è stata implementata sia tramite Socket che tramite RMI.
-
10708445 Jialiang Ding(@Astesia)
[email protected] -
10752734 Simona Cai (@SimonaCai)
[email protected] -
10699404 Ken Chen @KenChen
[email protected] -
10705881 Yang Hao Mao (@Yang Hao Mao)
[email protected]
| Functionality | State |
|---|---|
| Basic rules | 🟢 |
| Socket | 🟢 |
| GUI | 🟢 |
| TUI | 🟢 |
| Multiple games | 🟢 |
| Persistence | 🔴 |
| Resilience to disconnections | 🔴 |
| Chat | 🟢 |
| Element | Class % | Method % | Line % |
|---|---|---|---|
| Bag | 100% | 100% | 85% |
| Board | 100% | 90% | 88.7% |
| Shelf | 100% | 100% | 96.2% |
| Chat | 100% | 90% | 89.1% |
| CommonGoal | 100% | 100% | 96.8% |
| PersonalGoal | 100% | 72.7% | 80.5% |
| Match | 100% | 87.1% | 88.8% |
| Game | 100% | 81.8% | 50.6% |
| Player | 100% | 80.5% | 77.6% |
| VirtualView | 100% | 94.2% | 97.4% |
| ServerVirtualView | 100% | 80% | 80% |
I diagrammi UML sono disponibili al seguente link: UML
La documentazione Javadoc è disponibile al seguente link: javaDoc
Il file del client è suddiviso in file delle immagini e jar, durante l'esecuzione della gui, i due file devono trovarsi nella stessa cartella. I jar eseguibili sono disponibili al seguente link: Jars
Per avviare il gioco in modalità TUI è necessario eseguire il seguente comando da terminale: java -jar client.jar -tui
Per avviare il gioco in modalità GUI è necessario eseguire il seguente comando da terminale: Fare doppio click sul client.jar
- Regole Complete
- TUI
- GUI
- RMI
- Socket
- 2 FA (Funzionalità Avanzate):
- Partite Multiple: il server deve poter gestire più partite contemporaneamente.
- Chat: i giocatori possono comunicare tra loro tramite una chat testuale.
| Libreria/Plugin | Descrizione |
|---|---|
| Maven | Dependency management. |
| IntelliJ | Main IDE for project development. |
| JSON | JSON parsing library (used for loading game resources such as cards,leaders.. and for network protocol). |
| Swing | Graphic interface library. |
| Draw.io - Diagrams.net | UML and sequence diagrams. |
| JUnit | Unit testing framework. |
