Invasion - Cremona

Transcript

Invasion - Cremona
Invasion
Varsione 1.0 - 16/04/2015
Scopo del gioco
Conquistare tutti i territori del tabellone
Giocatori
Il numero di giocatori può variare da minimo 3 a massimo 6
Componenti
Una tabellone suddiviso in:
 42 territori appartenenti ai 6 raggruppamenti
 6 eserciti di diverso colore, costituiti da soldati
 3 dadi (virtuali) rossi utilizzati dall’attacco.
 2 dadi (virtuali) blu utilizzati dalla difesa.
La disposizione dei territori sul tabellone deve essere tale da permettere di raggiungere da ogni territorio
almeno altri due territori e da ogni raggruppamento almeno altri due raggruppamenti.
Fase iniziale
Come prima cosa è definita casualmente la sequenza di gioco (chi inizia per primo, secondo, terzo ...); tale
sequenza è utilizzata per permettere agli utenti di selezionare il colore dell'esercito da utilizzare.
Il software assegna tutti i territori suddividendoli equamente tra gli utenti; inoltre assegna i soldati ad ogni
giocatore in base al numero di giocatori che partecipano alla partita:




40 armate se si gioca in 3
35 armate se si gioca in 4
30 armate se si gioca in 5
25 armate se si gioca in 6
Ogni giocatore deve posizionare tutte le pedine (almeno una per territorio); se entro 60 secondi l'utente
non posiziona tutte le armate l'applicazione provvede a posizionarle automaticamente.
Fasi di gioco
All'inizio di ogni turno vengono assegnate ad ogni giocatore un numero di armate di rinforzo pari a numero
di territori posseduti / 3 (numero sempre approssimato per eccesso). Se un giocatore possiede tutti i
territori di un raggruppamento riceverà un bonus predeterminato che può variare da 2 a 7 armate.
Il giocatore può collocare i propri rinforzi entro e non oltre i 30 secondi, i rinforzi non collocati entro un
tempo utile saranno persi.
Nel proprio turno il giocatore può attaccare (non ne è costretto) da un territorio a quello confinante. Non
c'è limite al numero di attacchi effettuabili in un turno. Il giocatore può attaccare un territorio rivale
confinante con una, due o tre armate. È essenziale che resti sempre un'armata a protezione di ogni
territorio quindi da un territorio con 3 armate si può effettuare un attacco con al massimo 2 armate.
Il giocatore che possiede il territorio può difendere sempre con solo uno o due armate. Il giocatore di turno
riesce a conquistare il territorio solo se riesce a distruggere tutte le armate a difesa del territorio attaccato.
Durante ogni attacco vengono lanciati i dati per l'attaccante (massimo 3) e quelli della difesa (massimo 2).
Si ordinano i valori estratti dai dadi e si paragona il valore massimo estratto dall'attacco con il valore
massimo della difesa; il valore più alto vince e sconfigge l'armata avversaria (in caso di parità la vittoria è
assegnata alla difesa). Nel caso in cui l'attacco sia stato effettuato da almeno due armate e la difesa sia
effettuata con due armate si effettua anche il confronto del secondo valore più alto dei dadi dell'attacco
con il secondo valore dei dati della difesa.
Quando l'attaccante distrugge l'ultima armata dei difensori occupa il territorio con le armate residue
dell'attacco (quindi 1, 2 o 3); come detto in precedenza è possibile effettuare più attacchi in un turno.
Al termine del turno il giocatore può effettuare un solo movimento di truppe da un proprio territorio ad
un'altro (l'importante è che sia raggiungibile con un percorso attraverso i soli territori posseduti).
Se l'utente durante il proprio turno non effettua attacchi e/o spostamenti per più di 30 secondi il turno
passa automaticamente al giocatore successivo.
Punteggio
Al termine di ogni partita il giocatore vincitore e il secondo ricevono un punteggio:




16 al vincitore e 4 al secondo, se si gioca in 3
24 al vincitore e 6 al secondo, se si gioca in 4
32 al vincitore e 8 al secondo, se si gioca in 5
40 al vincitore e 10 al secondo, se si gioca in 6
Utenti
Ogni giocatore deve essere registrato e possiede un punteggio (dato dalla soma dei punteggi ottenuti nelle
partite). Qualora il sistema venga spento e riacceso si dovranno mantenere salvati i dati relativi ad utenti e
punteggi.
Sia il client sia il server devono mostrare le classifiche degli utenti in base i punteggi ottenuti
Struttura del software da sviluppare
È necessario sviluppare un'architettura client server che sia in grado di gestire una partita e che implementi
una comunicazione via socket (utilizzando solo stringhe di testo) e via RMI.
I client devono possedere l'interfaccia grafica rivolta al giocatore nella quale sarà possibile giocare,
visualizzare le proprietà, e la classifica dei migliori utenti. Il client deve potersi connettere al server e, dopo
una fase di inizializzazione, deve essere in grado di richiamare tutte le azioni previste dal gioco.
Il server deve permettere agli utenti di connettersi e di accedere alla partita. Il server contiene tutta la
logica di gioco. Il server dovrà essere in grado di salvare le informazioni degli utenti e dovrà mostrare varie
statistiche (utilizzo, numero di utenti collegati/registrati, giocate, percentuale di vincita...)
Il server deve essere in grado di gestire più partite contemporaneamente.
Comunicazione
Il protocollo di comunicazione RMI è libero mentre nelle successive versioni di questo documento sarà
rilasciata la specifica della comunicazione socket.