Mi sono cimentato nell'implementazione del gioco del Risiko in java , parto da una versione "locale" (cioè tutti i giocatori su un unico pc) per poi arrivare a una versione "multigiocatore online" tramite Socket.
Tralasciamo per ora le Socket ecc e consideriamo quella che deve essere la struttura del gioco-programma.
Io ho pensato , un po' grossolanamente poichè si tratta ancora di fare un abbozzo , di strutturare il programma sulle classi principali che saranno le seguenti (con i relativi attributi):
Territorio:
-nome
-territori confinanti
-giocatore proprietario
-numero armate in esso
Carta:
-tipologia (fante , cavallo , cannone , jolly)
-territorio riferito
Giocatore:
-nome
-colore armate
-obiettivo
-lista carte (lista di istanze Carta possedute dal giocatore)
-lista territori (lista di istanze Territorio possedute dal giocatore)
In linea di massima queste sono le idee strutturali che ho avuto ma alcune cose mi sembrano ridondanti e non ho ancora ben chiaro quale sia la giusta e migliore implementazione per esse..mi riferisco a:
-per implementare i territori confinanti come potrei procedere?Esiste una struttura dati particolarmente adatta a ciò (avevo pensato a una sorta di..non so come definirlo..pensate a una sorta di albero in cui ciascun nodo , Territorio , è collegato ad altri nodi che saranno i territori confinanti)..oppure la soluzione più semplice/dispendiosa che mi è venuta sarebbe quella di passare , alla sua creazione , a ciascun territorio una lista di Stringhe o istanze di Territorio e definire poi in Territorio un metodo che preso in ingresso una Stringa-nomeTerritorio o un oggetto Territorio restituisca un boolean in base alla presenza o mancata tale del parametro passato all'interno della lista..
-non è forse prolisso avere i riferimenti reciproci Giocatore-Territorio?Mi riferisco al fatto che Giocatore ha una lista di Territori da esso posseduti ma allo stesso tempo Territorio ha l'attributo "giocatoreProprietario"..ma elimanare uno dei due renderebbe più laboriosa la ricerca di appartenenza e procedimenti simili..come lo impostereste voi?

Rispondi quotando