andreaalf97 / ing-sw-2019-Alfieri-Carrioli-Ceruti

Adrenalina: the digital remake of a board game
2 stars 0 forks source link

Collegamenti UML #4

Closed andreaalf97 closed 5 years ago

andreaalf97 commented 5 years ago

Buonasera, apro questo issue per poter ricevere chiarimenti riguardo al nostro UML e alle nostre prime implementazioni. Esistono alcuni metodi, all'interno di classi di livello più basso nella nostra gerarchia, che necessitano di modificare lo stato di classi allo stesso livello o a livelli più alti. E' il caso, ad esempio, del metodo +attack(Weapon w, String nickname): void, all'interno di Turn, che dovrebbe modificare lo stato del giocatore identificato dal nickname.

Come dobbiamo comportarci in questi casi? E' meglio passare un Player come argomento di attack?

Grazie, Andrea

ingconti commented 5 years ago

dipende da come avete organizzato al gerarchia: l' esempio sopra pare al contrario: il Turn deve modificare il player che sta sotto .. qui turn SOPRA modifica Player (SOTTO) io direi:(ma dipende da voi) che il Game evolve x turni e modifica i player che sono quindi membri (un array o simili...di classe Player) di Game e Game ci applica sopra armi, effetti etc...

(come in effetti fareste se dite: attack(Weapon w, String nickname) metodo do turn. Turn e' sopra player.)

andreaalf97 commented 5 years ago

Buongiorno e grazie per la risposta, ritiene che qualcosa del genere possa essere più funzionale per noi? Ho eliminato completamente la classe Turn affidando l'intera gestione del gioco alla classe Game. Anche le classi PowerupDeck e WeaponDeck ora vengono gestite direttamente da Game, mentre Board si occuperà solo di gestire le classi Mappa e KillShotTrack.

Per le due Enum va bene lasciarle separate ma chiaramente visibili oppure sarebbe meglio collegarle a tutte le classi che ne fanno uso? Per la Mappa va bene avere un'interfaccia da cui derivo 4 classi Map1...Map4 oppure sarebbe meglio usare direttamente una sola classe Mappa il cui costruttore si occupa di costruire la mappa scelta, magari passandogli un riferimento alla scelta fatta dall'utente? (Abbiamo intenzione di rappresentare la mappa come una matrice di Spot

example.pdf

andreaalf97 commented 5 years ago

Salve, ho appena pushato il nuovo UML su cui ho lavorato oggi (UML). Vi chiedo gentilmente di farmi avere un vostro parere a riguardo.

@keni7385 , in riferimento alla mail di ieri, mi chiedevo in che modo potessimo specificare meglio le classi Weapon e Powerup nell'UML, per le quali abbiamo scelto di porre la "lista" degli effetti in un file JSON. Avevo pensato di fornire a queste due classi degli attributi del tipo shootsOnlyToVisiblePlayers: boolean oppure giveNDamagesPrimary: int ed inizializzarli tramite il metodo costruttore leggendo dal file.

ingconti commented 5 years ago

will be check upon deadline. pls write if you need clarifications. PLS use ENGLISH.