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.