Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 07-04-2006, 23:39   #1
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Test Driven Development, Task 14.1.2 [71104 vs redcloud, GIUSTO IN RITARDO]

allora, richiesta del task:
Quote:
Ogni volta che una coppia di gemme viene droppata si guarda il valore del numero di Stone in Arrivo si inserisce un numero pari di Stone all'interno della griglia. L'inserimento avviene dalla prima colonna a sinistra. Ad ogni Stone inserita si scorrono le colonne verso destra. Quando si raggiunge il fondo si riparte dalla colonna più a sinistra. Durante l'inserimento la gravità è settata come "accelerata".
test list:
Quote:
- Controllo della presenza di incoming stone prima della caduta di una nuova gemspair
- Riempimento con stone delle colonne da sinistra verso destra
- Controllo tra quantità stone e colonne, disposizione su più righe
- Controllo della gravità
adesso fatemi pensare al primo test, mumble...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 00:13   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
dopo una breve spiegazione a redcloud sul TDD e sul Pair Programming, ecco il primo test:

Codice:
    public void testCheckIncomingStones()
    {
        playField.addIncomingStones(5);
        assertEquals(playField.getIncomingStones(), 5);
    }
si trova in TestPlayField e richiede l'aggiunta di un metodo per sapere quante incoming stones ci sono in un dato momento.

Ultima modifica di 71104 : 08-04-2006 alle 00:35.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 01:30   #3
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
redcloud ha risolto quel test aggiungendo a PlayField:
Codice:
    public int getIncomingStones()
    {
        return warningBox.getCounter();
    }
come inizio di TDD non c'è male per lui
la prima soluzione che era venuta in mente ad entrambi esaminando il codice di playField era una variabile globale, lui invece ne ha trovata una più semplice

ragazzi, purtroppo devo dire che stasera abbiamo scritto pochissimo codice a causa del fatto che redcloud era al suo primo pair ma anche a causa del fatto che non esaminavo il codice da parecchio; adesso però siamo partiti e abbiamo capito come fare: da adesso andiamo molto più spediti.

per stasera facciamo solo altri due test e relative implementazioni, ma contiamo di finire entro domenica; io domani esco di sera e di pomeriggio sono a casa, se sabato pomeriggio va bene anche a redcloud (lo so, sto chiedendo qualcosa di infame ^_^) possiamo finire anche domani.

nel frattempo ecco il prossimo semplicissimo test:

Codice:
    public void testInsertNoStones()
    {
        controller.insertStones(0);
        assertFalse(controller.getGrid().isGemAt(0, 0));
    }
serve a testare una prima funzionalità di un ipotetico metodo insertStones che riceve in input il numero di pietre da inserire nella griglia; questo metodo dovrà essere richiamato da GridController.update() se opportuno.

Ultima modifica di 71104 : 08-04-2006 alle 01:43.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 01:48   #4
redcloud
Bannato
 
L'Avatar di redcloud
 
Iscritto dal: Feb 2003
Città: Anche Chuck Norris usa Debian e Gnome
Messaggi: 1270
Oggi pomeriggio ci sarò
redcloud è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 01:51   #5
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da redcloud
Oggi pomeriggio ci sarò
eh, meglio così, altrimenti non ci sarebbero state più le mie ditine

cmq, soluzione di redcloud all'ultimo test:

Codice:
    public void insertStones(int stoneNumber)
    {
        ;
    }
mi pare giusto ^^

prossimo test:
Codice:
    public void testInsertFirstStone()
    {
        controller.insertStones(1);
        assertTrue(controller.getGrid().isGemAt(0, 0));
        assertFalse(controller.getGrid().isGemAt(0, 1));
    }
PS: redcloud, la prossima volta, cioè domani pomeriggio, ti farò un esempio concreto di triangolazione
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 02:06   #6
redcloud
Bannato
 
L'Avatar di redcloud
 
Iscritto dal: Feb 2003
Città: Anche Chuck Norris usa Debian e Gnome
Messaggi: 1270
Eeeee ormai ho trovato un passatempo produttivo! Addio ogame! Grazie tante 7165512
redcloud è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 02:10   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da redcloud
Eeeee ormai ho trovato un passatempo produttivo! Addio ogame! Grazie tante 7165512


allora, soluzione di redcloud:
Codice:
    public void insertStones(int stoneNumber)
    {
        if(stoneNumber==0)
        {
            ;
        }
        else
        {
            grid.insertGem(0, 0, Stone.create(DroppableColor.EMERALD));    
        }
    }
bene bene bene: a domani la triangolazione e la consistenza del colore della pietra con quello indicato nel pattern
e a seguire a ruota l'inserzione delle pietre successive all'ottava.

notte a tutti
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 09:52   #8
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
stamattina prima di procedere mi puoi conttattare su msn?(sono b0l_padawan, ho gia provato a contattarti)

devo committare una modifica grossa su gridController e voglio farla prima che continuiate a toccarla se no è un macello
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 10:04   #9
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
la modifica era piccola sono riuscito ad arrangiarmi per i fatti miei ed ho committato. Cmq continuo lo sviluppo del pattern, se riprendete fatemi sapere.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 10:18   #10
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Quote:
Originariamente inviato da 71104
dopo una breve spiegazione a redcloud sul TDD e sul Pair Programming, ecco il primo test:

Codice:
    public void testCheckIncomingStones()
    {
        playField.addIncomingStones(5);
        assertEquals(playField.getIncomingStones(), 5);
    }
si trova in TestPlayField e richiede l'aggiunta di un metodo per sapere quante incoming stones ci sono in un dato momento.
Potete aggiungere ancora un test su questa cosa per favore?

Passa anche se gli fai ritornare 5 direttamente
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 10:31   #11
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Quando io e RedCloud avevamo iniziato questo task Ufo aveva chiesto se era possibile non complicare Grid e GrodController.
In grid è già presente il metodo insert insertStoneInColumn()...perchè non usate e modficate quello??

SOprattutto questo metodo è accedibile direttamente da playField:
Codice:
playField.getGridController().getGrid().insertStoneInColumn()
Il che vi risparmierebbe il getIncomingStones().

Pensateci se è una cosa che vi piace o no.
A me piace moooolto
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 13:53   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
eh Bonfo, sto metodo non l'avevamo neanche notato ^^
grazie per avercelo fatto notare, il codice di Diamond Crush è doventato piuttosto vasto e quando si pensa ai test tocca pure cercare i metodi giusti in mezzo a tanti...
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 13:55   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da Ufo13
Potete aggiungere ancora un test su questa cosa per favore?

Passa anche se gli fai ritornare 5 direttamente
giustissimo, l'avevo anche fatto notare a redcloud ma non ci eravamo preoccupati di essere troppo pignoli perché si trattava di un metodo semplicissimo; l'altro test lo metterei se non fosse che forse getIncomingStones va eliminato, come suggerito da Bonfo...
vedremo dove ci porterà il codice.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 14:05   #14
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
scusate, ma il metodo insertStoneInColumn perché l'avete messo visto che non lo usa nessuno...? (Eclipse non trova riferimenti)
era stato messo apposta per questo task?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 14:28   #15
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da 71104
scusate, ma il metodo insertStoneInColumn perché l'avete messo visto che non lo usa nessuno...? (Eclipse non trova riferimenti)
era stato messo apposta per questo task?
redcloud sta modificando l'implementazione di insertStones affinché utilizzi il metodo insertStoneInColumn al posto di insertGem; nel frattempo ecco il prossimo test:
Codice:
    public void testInsertNextStones()
    {
        controller.insertStones(2);
        assertTrue(controller.getGrid().isGemAt(0, 0));
        assertTrue(controller.getGrid().isGemAt(0, 1));
        assertFalse(controller.getGrid().isGemAt(0, 2));
    }
redcloud, questa volta ti tocca il for
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 15:21   #16
redcloud
Bannato
 
L'Avatar di redcloud
 
Iscritto dal: Feb 2003
Città: Anche Chuck Norris usa Debian e Gnome
Messaggi: 1270
Per superare

Codice:
public void testInsertNextStones()
{
    controller.insertStones(2);
    assertTrue(controller.getGrid().isGemAt(0, 0));
    assertTrue(controller.getGrid().isGemAt(0, 1));
    assertFalse(controller.getGrid().isGemAt(0, 2));
}
ho utilizzato

Codice:
public void insertStones(int stoneNumber)
{
    for(int i=0; i<stoneNumber; i++)
    {
        grid.insertGem(0, i, Stone.create(DroppableColor.EMERALD));
    }
}
nella classe GridController
redcloud è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 15:27   #17
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
bene, adesso vediamo i colori:
Codice:
    public void testStoneColor()
    {
        controller.insertStones(8, pattern);
        for(int i = 0; i < 8; i++) {
            assertEquals(grid.getGemAt(0, i).getColor(), pattern.getDroppableColor(i));
        }
    }

Ultima modifica di 71104 : 08-04-2006 alle 15:29.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 15:46   #18
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
scusate, ma il metodo insertStoneInColumn perché l'avete messo visto che non lo usa nessuno...? (Eclipse non trova riferimenti)
era stato messo apposta per questo task?
Guarda, neppure ci penso, Eclipse segnala un metodo che non e' usato da nessuna parte e io lo uccido automaticamente.

Se tutti dovessimo lasciare metodi che seriviranno in futuro, il codice diventa grande il doppio. Nel repository voglio solo codice che e' usato, e che e' testato.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 15:46   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ho spostato tutti i test di questo task in TestIncomingStones, tranne quello per getIncomingStones che si trova ancora in mezzo a quelli per PlayField.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 08-04-2006, 15:47   #20
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fek
Guarda, neppure ci penso, Eclipse segnala un metodo che non e' usato da nessuna parte e io lo uccido automaticamente.

Se tutti dovessimo lasciare metodi che seriviranno in futuro, il codice diventa grande il doppio. Nel repository voglio solo codice che e' usato, e che e' testato.
ok ^^
oltrettutto redcloud ha anche provato ad usarlo in insertStones, ma non è riuscito a farlo funzionare...

EDIT: lo eliminerò dopo perché la sua eliminazione comporta anche qualche correzione in alcuni test che lo usano (non per testarlo però, almeno non tutti); per ora quello che ci preme è di finire quest'altro test perché tra poco devo uscire O.o'

Ultima modifica di 71104 : 08-04-2006 alle 15:51.
71104 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
ASUS ROG Raikiri II Pro PC: controller d...
SteelSeries Aeon Pro: il primo controlle...
Il suo laptop lo stava 'cuocendo': bambi...
Motorola è pronta a seguire Samsung e Ap...
Cinque ricercatori hanno usato Claude su...
I nuovi Galaxy Z Fold 8 conquistano gli ...
d-Matrix sceglie NVIDIA NVLink Fusion pe...
BenQ MA270S o Apple Studio Display? Entr...
Apple Watch Series 12 e Ultra 4 su Amazo...
Apple AirPods 5 disponibili su Amazon a ...
Bending Spoons colpisce ancora: acquisit...
Il Tesla Cybercab non ha il volante ma p...
AMD aggiorna ancora AM4 e AM5: arrivano ...
Un graffio è sufficiente a far de...
Airbus realizzerà altri 229 satel...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:08.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v