|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
[CICLO 3] Test Driven Development task 3.2.6 (fpitt vs cisc)
allora, il task è:
Spostare la gestione della gravita e le collisioni dei diamanti nella classe che gestisce la griglia che mi sembra un po impreciso, e modificherei (secondo l'interpretazione suggeritami da fek Spostare la gestione della gravita e le collisioni dei diamanti a livello di cella pensiamo prima alle collisioni: quindi, il primo test: Codice:
public void testCellBottomCollision()
{
int gridColumns = 8;
int gridRows = 14;
Bounds bounds = new Bounds(40f, 40f, 256f, 448f, Config.createForTesting());
Grid grid = new Grid(gridRows, gridColumns, bounds);
Gem gem = new Gem("diamond", bounds);
int yStep = (int)(float)bounds.getHeight() / gridRows;
grid.setGravity(gem.getGemSize());
grid.insertGem(13,4,gem);
grid.insertGem(11,4,gem);
grid.moveAllGems(0, 2 * yStep);
assertTrue (grid.getGemAt(12,4).isDropped());
}
EDIT: ho modificato il test
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker Ultima modifica di cisc : 27-10-2005 alle 21:16. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
l'avevo detto che ero pieno di impegni in questi giorni..ed infatti, fpitt, ti devo lasciare, ci aggiorniamo a domani sera
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Oct 2005
Città: Crotone
Messaggi: 17
|
Ok cisc, a domani sera
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Ragazzi, avete lasciato tutta la notte la build rotta. Questo e' molto grave.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Qualcuno puo' fare il revert degl'ultimi due commit per favore? La build e' rotta e questo non deve MAI essere lasciato stare per lungo tempo perche' significa che nessuno puo' lavorare.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ora funziona...
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Per la collisione fra diamanti, è molto semplice...
Non stravolgete il codice perchè basta modificare una sola funzione... Ci sarebbe anche un altro test da fare... L'inserimento su una cella già occupata deve portare ad una eccezione... |
|
|
|
|
|
#8 | ||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Grazie per l'averlo aggiustato
Quote:
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
fek: io non aggiustato niente
Allora me lo sono perso |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Hmmm, allora sara' un problema della build machine. Quando arrivo a casa ci guardo.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
io avevo pensato a modificare il Bounds di Gem ad un quadrato intorno alla cella corrente, che viene ridotto in caso di presenza di altri diamanti vicini, cmq, il test che non passa al momento è nel package it.diamonds.tests.ignore, la build machine considera anche questo package?
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Io invece penserei di farla il più semplice possibile (vediamo intanto di far passare il test)... Guarda updateGemPosition... Come faresti a far passare il test (solo il test) ? Basta un if...
PS: consiglio di invertire l'ordine dei for per cominciare a disegnare le gemme a partire dal fondo della griglia PPS: non è detto che la gemma vada mossa prima... Ultima modifica di cionci : 28-10-2005 alle 19:26. |
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
vabbè, in TDD si andrà un passo alla volta, come dici tu cionci, io parlavo della soluzione finale..
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#14 | |
|
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 |
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
cmq cionci, non mi sembra che si possa risolvere con un if, dopo tutto nel test io chiedo alla gemma se ha colliso.
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
modifico il test, per rendere lo sviluppo più regolare:
Codice:
public void testCellBottomCollision()
{
int gridColumns = 8;
int gridRows = 14;
Bounds bounds = new Bounds(40f, 40f, 256f, 448f, Config.createForTesting());
Grid grid = new Grid(gridRows, gridColumns, bounds);
Gem gem = new Gem("diamond", bounds);
int yStep = (int)(float)bounds.getHeight() / gridRows;
grid.setGravity(gem.getGemSize());
grid.insertGem(13,4,gem);
grid.insertGem(11,4,gem);
grid.moveAllGems(0, 2 * yStep);
assertTrue (grid.gemIsDropped(12.4));
}
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Non mi e' chiaro il significato del metodo moveAllGems(). Chi lo puo' spiegare meglio?
Non mi e' neppure chiaro il significato di swapGrid.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 28-10-2005 alle 21:37. |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Muove tutte le gemme presenti nel grid dello step scelto...in pratica tutte le gemme, se non sono dropped, reagiscono all'input (viene appunto richiamato da reactToInput)...
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
già, una spiegazione su swapGrid sarebbe utile...
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Il codice non lo chiarisce molto, in alcune parti e' un po' oscuro. In particolare non e' chiaro da dove derivi la necessita' di avere una seconda griglia alternativa e non si possa fare la stessa operazione sulla griglia principale. Facciamo un po' di refactoring assieme?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:58.



















