|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
[CICLO 6] Storia 1
Storia 1: Ogni gemma dovrà avere un colore (tra 5 possibili: bianco, rosso, blu, verde, giallo), a cui corrisponderanno una differente png (rispettivamente diamond, ruby, sapphire, emerald, topaz) ed un differente valore in punteggio (per ora rispettivamente 100, 50, 60, 40, 80), e dovrà riconoscere se nelle vicinanze (diagonali escluse, quindi nelle quattro direzioni principali) ha delle gemme di uguale colore (evento da evidenziare visivamente agendo sulla luminosità delle gemme uguali adiacenti tra loro).
Il colore delle prime sei gemme viene scelto casualmente all'inizio del gioco, e viene inserito in una coda. Ad ogni gemma creata, viene estratto il primo valore e viene creato un nuovo valore casuale che si appende in coda. Punti cardine da tenere a mente durante i lavori:
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. Ultima modifica di Jocchan : 28-11-2005 alle 01:21. |
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Ecco la lista dei task per questa storia.
Task: 6.1.1: 71104: completato Aggiungere la possibilita di scegliere quale tipo di gemma deve essere creata da GameGemFactory quando viene chiamata la create. I vari tipi di gemme per ora sono: diamond, ruby, sapphire, emerald, topaz. 6.1.2: ^TiGeRShArK^: completato La casella dei punti non deve piu riportare il numero di gemme all'interno della griglia. Il nuovo valore è la somma dei punti che ogni singola gemma rappresenta. La tabella con i punti è la seguente: diamond | ruby | sapphire | emerald | topaz 100 | 50 | 60 | 40 | 80 6.1.3: Ufo13: completato Aggiungere un metodo per modificare la "luminosità" di uno sprite. Si deve quindi moltiplicare il colore proveniente dalla texture per un colore che ne indica la luminosita 6.1.4: 71104 + DanieleC88: completato Grid deve aumentare la luminosità delle gemme che hanno almeno un lato in comune con un'altra gemma dello stesso tipo. (solo pair-programming) 6.1.5: cionci: completato Aggiungere a GameGemFactory una coda che deve contenere le prossime 6 Gemme da rilasciare. 6.1.6: Ufo13: completato Quando viene richiesta una nuova gemma GameFemFactory deve restituire quella in testa alla coda ed eliminarla dalla lista. Fatto questo deve essere creato un nuovo valore da appendere in coda ciao Ultima modifica di VICIUS : 07-12-2005 alle 19:56. |
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
provo il primo, 1 giorno; ora mi cimento in qualche test, se non ho ben chiaro qualcosa lo posto sul forum.
PS: vicius, non mi ero accorto che mettevi il "ciao perché non te lo metti in signature scusa? |
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
ciao |
|
|
|
|
|
#5 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
allora, problema: come faccio il test?
perché idealmente il test dovrebbe chiamare GameGemFactory.create passandogli il nome della texture da caricare e verificare che la Gem restituita contenga la texture giusta, ma come fo a verificare che la texture è quella giusta? |
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Potresti usare questo metodo per fare i confronti:
gem.getTexture().equals(new Texture(nome_della_gemma)) |
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Anzi...mi sa che così non funziona... Credo per problemi di confronto fra due buffer...
|
|
|
|
|
#8 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
infatti non funzionerebbe di sicuro perché la nostra classe Texture non overridda il metodo equals... la comparazione risulterebbe sempre falsa...
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Controllarlo con il nome avrebbe poco senso...che dici ? Ovviamente andrebbe esposto un metodo getName in Texture...
Anche se, supponendo che la classe Texture funzioni, dovrebbe essere sufficiente... |
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
io mi prenderei il task 2 tempo previsto 2 giorni (mi tengo sempre largo non si sa mai
)....sempre che non riteniate + opportuno che possa continuare a giochicchiare col Parser [EDIT]ovviamente pure io dovrei partire dopo che finisce 71104 mi sa..... altrimenti come faccio a sommare il valore delle gemme diverse con tutte le gemme uguali???
__________________
Ultima modifica di ^TiGeRShArK^ : 30-11-2005 alle 09:56. |
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Io mi prenoto per il 6.1.5...2 giorni a partire da quando 71104 ha terminato il suo task
Ultima modifica di cionci : 30-11-2005 alle 09:30. |
|
|
|
|
#12 | |
|
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 |
|
|
|
|
|
#13 | |
|
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 |
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Stavo pensando che io il mio task lo posso fare anche senza il task di 71104... Però mi sono trovato di fronte ad un problema...l'audio...
Non posso inserire il codice per la gestione della coda in GameGemFactory perchè ha bisogno che l'audio sia inizializzato nel costruttore... fek, che ne dici se promuovo GemFactory da interfaccia a classe base ? In questo modo implemento la coda lì e verrà ereditata da GameGemFactory e GemFactoryForTesting... |
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Mi sa che ho semplificato notevolmente tutto... Ho aggiunto una classe GemQueue... Basta che GameGemFactory e GemFactoryForTesting la istanzino...
|
|
|
|
|
#16 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Bello programmare a interfacce vero? Ti costringe a cercare design piu' semplici. Hai scritto GemQueue test-driven?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Certo... Vorrei anche vedere...
9 test per 4 metodi |
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
ma tanto finchè non viene concluso il task 1 non credo che potrei fare molto.. il mio task si basa proprio sull'assunto che le gemme siano diverse... intanto farei lo spike, appena 71104 finisce il suo task partirei col mio...
__________________
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Ragazzi, ricordatevi di scrivere la test list prima di iniziare il task. E questo vale per tutti
Se non l'avete scritta e avete gia' iniziato il task, scrivetela comunque.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
#20 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Questi dovrebbe essere i test più rappresentativi:
Codice:
public void testTwoGemExtraction()
{
Gem gem1 = new Gem("diamond");
Gem gem2 = new Gem("diamond");
gemQueue.insertLast(gem1);
gemQueue.insertLast(gem2);
Gem extractedGem1 = gemQueue.extractFirst();
assertSame("gems are not the same", gem1, extractedGem1);
assertEquals("erroneus queue size", 1, gemQueue.queueSize());
Gem extractedGem2 = gemQueue.extractFirst();
assertSame("gems are not the same", gem2, extractedGem2);
assertEquals("erroneus queue size", 0, gemQueue.queueSize());
}
public void testQueueOverflow()
{
gemQueue.insertLast(new Gem("diamond"));
gemQueue.insertLast(new Gem("diamond"));
gemQueue.insertLast(new Gem("diamond"));
gemQueue.insertLast(new Gem("diamond"));
gemQueue.insertLast(new Gem("diamond"));
gemQueue.insertLast(new Gem("diamond"));
try
{
gemQueue.insertLast(new Gem("diamond"));
}
catch(IllegalArgumentException e)
{
return;
}
fail("IllegalArgumentException not thrown");
}
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:58.










)








