- Davide Volta
- Marco Riva
- Mattia Valassi
Per l'A.A. 2019-2020 è stato richiesto lo sviluppo in linguaggio Java del gioco da tavolo Santorini di Gordon Hamilton, basandosi sulla versione offerta da Cranio Creations. Pensato per un ambiente di gioco online da 2-3 giocatori, viene implementato tramite l'architettura progettuale Model-View-Controller combinata ad un approccio di rete basato su multithreading e socket. L'interfaccia di gioco è stata sviluppata interamente mediante JavaFX.
Nella documentazione richiesta sono previsti gli schemi UML iniziali e finali del progetto. Gli UML, per miglior comprensione, sono stati divisi per package più rilevanti, ma rimangono comunque presenti schemi con una visione più generale. Sono stati anche aggiunti degli schemi ispirati ai Sequence Diagrams per meglio descrivere la gestione degli eventi e la parte di rete all'interno del progetto.
Il progetto copre i seguenti requisiti tra quelli specificati come richiesti (base ed aggiuntivi) all'interno delle disposizioni del corso:
- Regole Semplificate: Possibile completare una partita da 2 giocatori; supportate le prime 5 divinità (Apollo, Artemis, Athena, Atlas, Demeter)
- Regole Complete: Possibile completare una partita da 2-3 giocatori; supportate tutte le divinità semplici escluso Hermes
- Il server implementa le regole del gioco e viene istanziato una singola volta per implementare una singola partita
- Client multi-istanziabile con CLI e GUI (sviluppata via JavaFX) selezionabili comodamente dal giocatore
- Completamente coperte le istruzioni per l'avvio della partita
- Divinità Avanzate: sono state implementate le 5 divinità aggiuntive Hera, Hestia, Limus, Triton, Zeus
- JDK 14
- Maven (per la compilazione)
git clone https://github.com/david98/ing-sw-2020-riva-valassi-volta.git
cd ing-sw-2020-riva-valassi-volta
mvn clean package
Gli archivi .jar (santorini.jar
e santorini-jar-with-dependencies.jar
) verranno generati nella cartella target
.
Nelle istruzioni seguenti, in caso di problemi di dipendenze, provare a sostituire santorini.jar
con santorini-jar-with-dependencies.jar
, che include tutte le dipendenze che potrebbero non essere installate sulla vostra macchina.
java -jar santorini.jar -s
Altre opzioni disponibili:
-p <porta su cui ascoltare>
java -jar santorini.jar
(o doppio click sul file .jar, se la versione di Java configurata nell'ambiente é quella corretta)
java -jar santorini.jar -c <indirizzo del server>
Altre opzioni disponibili:
-p <porta a cui connettersi>
- Il server non accetta piú connessioni finché non viene scelto il numero dei giocatori.
- Per muoversi nella CLI, utilizzare WASD, Spazio per selezionare, O per confermare, N per saltare fase/turno, 4 per costruire una cupola con Atlas.
- Per costruire una cupola con Atlas nella GUI, cliccare con il tasto destro del mouse.