|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
proposta di refactoring per smaltire un po' Grid
mi sono letto tutto il codice di Grid: l'ho trovato fatto abbastanza bene (molto semplice), ma come tutti sappiamo è una classe troppo grossa; leggendo il codice sono giunto alla conclusione che Grid si occupa essenzialmente di due compiti:
1) gestione della griglia (banalmente la matrice di gemme, sulla quale però sono definite molte operazioni anche complesse a causa per esempio delle big gems) 2) sistema di gravità e adesso naturalmente sta per aggiungersi un nuovo compito minore, ovvero il controllo sul numero di candelotti di dinamite (massimo 3 mi sembra); e forse sarebbe bene spostarlo in una classe più "alta" come GridController per dividere la classe Grid, che ne pensate se mettiamo il codice per la gestione della gravità in una nuova classe GravitySystem? secondo voi potrebbe semplificare Grid significativamente? mi sembrerebbe una buona idea perché a quel punto a Grid rimarrebbe l'unico compito della gestione della matrice, e come design sarebbe assolutamente perfetto. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
a mio avviso dopo il refactoring relativo al rendere le bigGem Droppable, seguendo il concetto proposto da Bonfo secondo il quale devono essere le droppable a sapere se possono muoversi e dove, grid si semplificherà notevolmente...secondo me il tuo refactoring è ancora YAGNI, potrebbe essere utile in seguito, ma adesso andrebbe a banalizzare il ruolo di grid....
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Quote:
Non sono molto d'accordo... Secondo me non è troppo YAGNI direi |
|
|
|
|
|
|
#4 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
allora aspettiamo di vedere cosa succede a Grid dopo il refactoring e vediamo se è ancora il caso di attuare questa mia mezza idea.
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Quote:
Inoltre ripeto in questa sede che una delle cose che semplificherebbe al massimo Grid sarebbe trasformala da una classe che gestisce un'insieme di Celle ad un'iniseme di Droppable. Sparirebbe la lista di BigGems che deve essere mantenuta per ricordarsi quale BigGem sono già state visitate, evitando così i numerosi clicli di controllo per gestire questa cosa |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
secondo me, rendendo le bigGem droppable, e seguendo il concetto per cui le bigGem non sono un agglomerato di gemme, ma delle gemme più grandi (come anche il nome suggerisce), è inevitabile trasformare grid in modo che gestisca un insieme di Droppable e non un insieme di celle......
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Quote:
|
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
|
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
|
Quote:
![]() allora a che cosa serve il metodo applayGravity che c'è in AbstractDroppable?? Forse ho capito male io |
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
il giro nuovo non lo conosco molto bene, magari ora funziona in ogni caso |
|
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
stavo valutando il refactoring di action e state, e mi sarebbe molto comodo avere una action per la gravità(quindi loggabile), da chiamare negli state.
Non so se convergerebbe in un GravitySistem, ma cmq provo a vedere cosa ne viene fuori. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:26.




















