Torna indietro   Hardware Upgrade Forum > Software > Programmazione

realme GT7: un "flaghsip killer" concreto! La recensione
realme GT7: un "flaghsip killer" concreto! La recensione
Abbiamo provato l'ultimo smartphone di realme, il nuovo GT7. Si tratta di un device che si colloca in una fascia di mercato delicata, ovvero quella che possiamo definire medio-alta. La specifica che salta all'occhio è senza dubbio la sua batteria da 7.000 mAh e un design elegante e premium. Ma come funziona nel quotidiano? E soprattutto è davvero un Flagship Killer? Ve lo diciamo nella nostra recensione completa.
Oracle guida Stargate UAE: nasce il supercluster per l'IA sovrana
Oracle guida Stargate UAE: nasce il supercluster per l'IA sovrana
Il cloud ottimizzato per l'intelligenza artificiale di Oracle si combina con un'infrastruttura per la sovranità sul dato negli Emirati Arabi. "Questa implementazione epocale stabilisce un nuovo standard per la sovranità digitale", afferma Larry Ellison, fondatore di Oracle
Tutto sulla nuova Tesla Model Y: autonomia in autostrada, prova bagagliaio e dettagli
Tutto sulla nuova Tesla Model Y: autonomia in autostrada, prova bagagliaio e dettagli
Abbiamo guidato per diversi giorni la nuova Tesla Model Y, in versione di lancio dual motor e con batteria long range. Ecco tutto quello che c'è da sapere sull'erede dell'auto più venduta al mondo
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: 7027
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: 7027
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: 7027
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: 1266
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: 7027
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: 1266
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: 7027
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: 7027
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: 7027
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: 7027
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: 7027
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: 1266
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: 7027
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: 11782
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: 7027
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: 7027
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


realme GT7: un "flaghsip killer" concreto! La recensione realme GT7: un "flaghsip killer" concr...
Oracle guida Stargate UAE: nasce il supercluster per l'IA sovrana Oracle guida Stargate UAE: nasce il supercluster...
Tutto sulla nuova Tesla Model Y: autonomia in autostrada, prova bagagliaio e dettagli Tutto sulla nuova Tesla Model Y: autonomia in au...
HONOR 400 Pro trasforma ogni scatto in capolavoro animato. Recensione HONOR 400 Pro trasforma ogni scatto in capolavor...
Intel Core Ultra 5 235 e Core Ultra 5 225F, CPU Arrow Lake per la fascia media Intel Core Ultra 5 235 e Core Ultra 5 225F, CPU ...
SpaceX ha eseguito il nono volo del razz...
Tesla in caduta libera: in Europa -52,6%...
WhatsApp arriva finalmente su iPad: abbi...
Sony annuncia il ritorno dei proiettori ...
Concept Astro, il progetto di Dell per a...
Dubai pronta a offrire accesso gratuito ...
PlayStation Portatile: SoC AMD con proce...
Tor Alva: ecco l'edificio più alto al mo...
Finale di Champions con un maxischermo: ...
OnePlus AI: la nuova era dell'intelligen...
TeamViewer ONE: la piattaforma per unifi...
Volkswagen blinda l'architettura SSP: pr...
Sapphire Phantomlink: il produttore cine...
Formula E pronta a Shanghai: due gare de...
Offerte Tech da urlo: le componenti perf...
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: 01:59.


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