PDA

View Full Version : Grid e GridController


Ufo13
25-03-2006, 13:26
Arrivati a questo punto noto che Grid fa davvero molte cose...

Secondo me sarebbe una buona idea cominciare a separare i comportamenti strettamenti legati al concetto di "Griglia contentente delle gemme" dai vari concetti di "crush, creazioneBigGem, scoring, Stone etc...".

Parlando di GridController, invece, il codice mi sembra parecchio complicato...

Cosa ne dite di organizzare una sessione di refactoring? Potrei offrirmi per un pair nei prossimi giorni :)

thebol
25-03-2006, 14:48
beh in grid di logica per le crush ce ne è ormai ben poco(sta in abstractCrushAction and soon), cmq secondo me in grid sarebbe da togliere l'opponentGrid(che ora non fanno nulla, l'ho tolta e non ha dato errori), i restanti metodi me sembrano metodi di utilita e accesso alla griglia. Forse si potrebbero riorganizzare alcuni metodi per evitare ripetizioni di codice, ma non sono sicuro ce ne sia bisogno)

per gridController la gestione dell'update è abbastanza incasinata e si potrebbe cercare un modo per semplificarla(anche se al volo non me ne viene in mente nessuno).

Ufo13
26-03-2006, 12:16
beh in grid di logica per le crush ce ne è ormai ben poco(sta in abstractCrushAction and soon), cmq secondo me in grid sarebbe da togliere l'opponentGrid(che ora non fanno nulla, l'ho tolta e non ha dato errori), i restanti metodi me sembrano metodi di utilita e accesso alla griglia. Forse si potrebbero riorganizzare alcuni metodi per evitare ripetizioni di codice, ma non sono sicuro ce ne sia bisogno)

per gridController la gestione dell'update è abbastanza incasinata e si potrebbe cercare un modo per semplificarla(anche se al volo non me ne viene in mente nessuno).

Tutta la logica che riguarda crush (il metodo c'è ancora), score, combo, Stone, animazioni gemme non c'entra con il concetto di griglia di gemme e secondo me ormai grid fa troppe cose troppo diverse arrivando al punto che quando non si sa dove mettere qualcosa la si mette facilmente in grid.

Jocchan
26-03-2006, 12:52
Tutta la logica che riguarda crush (il metodo c'è ancora), score, combo, Stone, animazioni gemme non c'entra con il concetto di griglia di gemme e secondo me ormai grid fa troppe cose troppo diverse arrivando al punto che quando non si sa dove mettere qualcosa la si mette facilmente in grid.

E' già successo in passato, Grid veniva usata come classe-monnezza.
Poi, con qualche refactoring, la cosa un pò si è sistemata.
Se la situazione è tornata come prima, allora urge un bel refactoring.

VICIUS
26-03-2006, 15:36
Me ne ero accorto anche io infatti volevo proporlo come storia di servizio ma visto che abbiamo ancora dei task da finire nella storia precedente dovremo rimandare.
Grid deve delegare in qualche modo tutta la gestione della logica ad altri. Si può pensare di usare observer per lanciare qualche evento che poi verrà gestito da queste classi.

ciao ;)

Bonfo
27-03-2006, 00:54
Infatti... :D
...non so perchè ma nel nostro bel progetto di eventi se ne vedono proprio pochi. :confused:
Eppure in un game a me sembra quasi ovvio pensare che la maggior parte delle azioni sia dovuta a determinati eventi.

Forse dovremmo ristrutturare un po' il codice in questa ottica. ;)
Non so se sembra anche a voi, ma le varie sottoclassi di GemAction ricordano un po' dei gestori di eventi :sofico:

VICIUS
27-03-2006, 12:32
Infatti... :D
...non so perchè ma nel nostro bel progetto di eventi se ne vedono proprio pochi. :confused:
Eppure in un game a me sembra quasi ovvio pensare che la maggior parte delle azioni sia dovuta a determinati eventi
Evidentemente non ci servivano. Ora pero la situazione sta degenerando. :mad:

ciao ;)

Ufo13
27-03-2006, 13:23
Ha ragione VICIUS. Non esageriamo con le idee.

Ci serve solo rendere il codice più leggibile e rendere più facile lo svolgimento dei task.

Inoltre il refactoring è reso difficile dalla discreta quantità di codice non testato presente in molte parti del codice.

Questo è un problema molto più grande che avere un'architettura Event-Driven :)

Bonfo
27-03-2006, 14:01
Verissimo Ufo...
...prima avremo la copertura la 100% prima potremmo fare dei refactoring anche stravolgenti !!! :D

Ufo13
27-03-2006, 14:03
Allora iniziamo ad aggiungere qualche test? :)

Se guardi in Thread dei Problemi manca un test per la condizione di GameOver in GameLoop

Bonfo
27-03-2006, 14:43
Volentieri...se potessi mettere le mani sul codice. :cry: :cry:
L'obiettivo delle prossime settimane è collaborare aggiungendo ogni volta che posso un piccolo test ;)