• Non ci sono risultati.

Invasion Varsione 1.1 - 27/05/2015

N/A
N/A
Protected

Academic year: 2021

Condividi "Invasion Varsione 1.1 - 27/05/2015"

Copied!
3
0
0

Testo completo

(1)

Invasion

Varsione 1.1 - 27/05/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.

(2)

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.

Al fine di eseguire il test automatico simulando l'apertura del socket, la connessione e la disconnessione sono definiti i seguenti comandi per la comunicazione socket.

(3)

--> Stringa che rappresenta l'azione di login inviata dal client al server login@[username];[password]

[username] e [password] devono essere sostituiti dai rispettivi valori di nome utente e password

<-- Risposta del server in caso di login effettuato correttamente ok@[proprietà1]; [proprietà2];...

[proprietàX] rappresenta il valore degli attributi ( esempio punteggio, ultimo login... )

<-- Risposta del server in caso di login non effettuato correttamente ko@[motivazione del mancato login]

Stringa che rappresenta l'azione di logout inviata dal client al server logout

<-- Risposta del server in caso di logout effettuato correttamente ok@[username]

<-- Risposta del server in caso di logout non effettuato correttamente ko@[tipo di errore in fase di logout]

Il carattere @ definisce il separatore tra l'azione e le altre componenti del messaggio Il carattere ; definisce il separatore tra le diverse componenti del messaggio

Tutti gli altri messaggi sono di libera definizione.

Riferimenti

Documenti correlati

Il progetto prevede il rivestimento delle pareti esterne degli edifici con “facciate ventilate”, un sistema che permette di ridurre la trasmissione di energia tra l’interno

«valido con riferimento a tutti quanti gli organi supremi dello Stato, in virtù del quale, a tutela della loro indipendenza, deve essere consentito.. Nell’intento di favorirne

«valido con riferimento a tutti quanti gli organi supremi dello Stato, in virtù del quale, a tutela della loro indipendenza, deve essere consentito loro di disciplinare

La Corte, al momento, risulta essersi pronunciata in un solo caso (Sez. 22494\2005), dichiarando la manifesta infondatezza di una questione di legittimità costituzionale

strada presenta natura sanzionatoria e meramente repressiva, osservando come la stessa non sia idonea a prevenire il pericolo che l’autore del reato si ponga alla guida di

Un processo padre crea una pipe dalla quale dovrà leggere e successivamente creerà due processi figli che chiameremo p1 e p2 che scriveranno nella pipe.. Ogni figlio genera

Disposizioni in materia di assistenza in favore delle persone affette da disabilità grave prive del sostegno familiare (seguito esame testo unificato C. Carnevali). Ore 14

- Disposizioni in materia di diagnosi, cura e abilitazione delle persone con disturbi dello spettro autistico e di assistenza alle famiglie (seguito esame C. 2985 , approvata, in