|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Refactoring degli stati.
Sto cercando di spostare codice da Grid/GridController a GameTurn per arrivare a qualcosa come:
- Grid e` una classe semplice che gestisce i droppable e non conosce la logica di gioco. - GameTurn gestisce la logica di un Turno di uno dei due giocatori. - GridController diventa un oggetto semplice che connette l'input a GameTurn. GridController a quel punto diventerebbe piu` un PlayerPlug. Purtroppo in questo refactoring mi ritrovo sempre tra i piedi lo state pattern che rende alcune modifiche veramente ostiche come la rimozione di scoreCalculator e stoneCalculator da Grid. Sto pensando a cosa si puo` fare per eliminare lo state pattern corrente a favore di una soluzione piu` semplice. Se avete idee per come organizzare gli stati postate pure altrimenti vado in solo :P |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Estra da Grid tutto cio' che rappresenta uno stato (ScoreCalculator, StoneCalculator, Gravita') e metti queste informazioni in una classe GridState.
GridController puo' essere una collezione di Grid e GridState. Gli stati ricevono GridController nell'Update e restituiscono il nuovo stato.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
ho estratto quasi tutto il metodo PlayField.updateCrushBox() in crushBox. Tutti i test passano però il box esce dalla schermo troppo velocemente, ma tutti i test passano....
Per cui correggo il bug, faccio il test e poi posso committare. Sempre che il refactoring sia gradito ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
|
Graditissimo!
![]() Puoi scrivere prima il test e poi correggere il bug?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 1545
|
Scusate la mancanza di checkin..
In codice lo sto cambiando ma sono veramente in difficolta` con gli stati (stanno in pessimo stato eheheh). |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:32.