Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia
Sony Xperia 1 VII propone un design sobrio e funzionale, con un comparto fotografico di ottimo livello caratterizzato da uno zoom continuo e prestazioni generali da top di gamma puro. Viene proposto con una personalizzazione software sobria e affidabile, ma presenta qualche criticità sul fronte ricarica rapida. Il dispositivo punta su continuità stilistica e miglioramenti mirati, rivolgendosi al solito pubblico specifico del brand giapponese.
Attenti a Poco F7: può essere il best buy del 2025. Recensione
Attenti a Poco F7: può essere il best buy del 2025. Recensione
Poco F7 5G, smartphone che punta molto sulle prestazioni grazie al processore Snapdragon 8s Gen 4 e a un display AMOLED da ben 6,83 pollici. La casa cinese mantiene la tradizione della serie F offrendo specifiche tecniche di alto livello a un prezzo competitivo, con una batteria generosissima da 6500 mAh e ricarica rapida a 90W che possono fare la differenza per gli utenti più esigenti.
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
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


Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Arriva il generatore che potrebbe cambia...
PCI-SIG conferma la roadmap PCIe: nel 20...
Addio a Gianni Berengo Gardin, la fotogr...
Oracle semplifica l'implementazione di a...
Il Made in Italy su Marte con SpaceX: es...
I servizi critici non sono un problema c...
Sony stringe la presa su Bungie: addio a...
Redmi A5 4G: a meno di 70 euro non puoi ...
Attacco hacker a Google confermato: ruba...
Leapmotor sfida BYD: ora vende pacchi ba...
Universal a muso duro contro Big Tech: r...
Aumenti di prezzo anche per Sonos entro ...
Instagram introduce tre novità pe...
Riprodotte le prime reazioni chimiche do...
Forticloud sempre più sicuro: nuo...
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: 16:48.


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