Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione REDMAGIC 10S Pro: il gaming phone definitivo?
Recensione REDMAGIC 10S Pro: il gaming phone definitivo?
Il REDMAGIC 10S Pro è uno smartphone da gaming estremo che unisce il nuovo Snapdragon 8 Elite Leading Version, display AMOLED 144Hz da 6,85", raffreddamento ICE-X a metallo liquido e batteria da 7.050 mAh per prestazioni e autonomia al top.
HPE Discover 2025: tra agenti intelligenti, infrastruttura AI-native e un futuro ibrido
HPE Discover 2025: tra agenti intelligenti, infrastruttura AI-native e un futuro ibrido
Edge9 ha seguito da vicino HPE Discover 2025 con accesso esclusivo a keynote e interviste. Dalla Sphere di Las Vegas, la visione di un’infrastruttura AI-native e agentica. Hybrid cloud, virtualizzazione e quantum tra i temi centrali
Radeon RX 9060 XT, assalto a NVIDIA? Ecco come va la nuova scheda video di AMD
Radeon RX 9060 XT, assalto a NVIDIA? Ecco come va la nuova scheda video di AMD
La Radeon RX 9060 XT si propone come una nuova sfidante nella fascia media, puntando tutto su prestazioni solide in QHD e un prezzo aggressivo. La nuova proposta basata su architettura RDNA 4 rappresenta un'interessante soluzione per la massa in mercato dove i prezzi spesso scoraggiano dall'acquisto.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-01-2006, 12:26   #1
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
[TASK 8.2.2] Pair Programming: Ufo13 + thebol

Benissimo partiamo subito!
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 12:29   #2
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
Prima la test list
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 12:44   #3
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Test List:

- Le Gem appartenenti ad un GemGroup non vengono disegnate.

- Dato un GemGroup testiamo che la texture caricata per disegnare il GemGroup sia la texture corretta.

- Dato un GemGroup testiamo che vengano rilevate le tile di tipo "angolo_alto_sx, angolo_alto_dx etc...", i bordi (alto, sx, dx, basso) e i riempimenti. Il tutto nelle corrette posizioni.

- Dato un gruppo 3x3 testiamo che ai corrispondenti angoli, bordi e riempimenti vengano disegnate le "tile" corrette.
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 12:44   #4
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Quote:
Originariamente inviato da fek
Prima la test list
dammi il tempo
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:03   #5
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
ecco il primo test

Codice:
public class TestGemGroupsDrawing extends TestCase
{
    private Grid grid;
    
    private MockTimer timer;
    
    public void setUp()
    {
        grid = Grid.createForTesting();

        timer = new MockTimer();
    }
    
    public void testGroupedGemIsNotDrawn()
    {
        MockEngine engine = new MockEngine();

        Gem gem1 = Gem.diamond(3500);
        Gem gem2 = Gem.diamond(3500);
        Gem gem3 = Gem.diamond(3500);
        Gem gem4 = Gem.diamond(3500);
        
        insertAndUpdate(gem1, 13, 3);
        insertAndUpdate(gem2, 13, 4);
        insertAndUpdate(gem3, 12, 3);
        insertAndUpdate(gem4, 12, 4);

        gem1.draw(engine);
        gem2.draw(engine);
        gem3.draw(engine);
        gem4.draw(engine);
        
        assertEquals("grouped Gems must be not drawn", 0, engine.getNumberOfQuadsDrawn());
    }
    
    private void insertAndUpdate(Gem gem, int x, int y)
    {
        grid.insertGem(x, y, gem); 
        grid.update(timer, gem); 
    }
}
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:14   #6
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Codice:
    public void draw(EngineInterface engine)
    {
        if (!isInAGroup())
        {
            sprite.draw(engine);
        }
        
    }
è la draw di gem

ps.si sarebbe potuto inserire il controllo in grid.draw(), anziche in gem.draw(); dove è piu sensato metterlo?(per passare questo test è pero obbligatorio metterlo in gem)
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:15   #7
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
Quote:
Originariamente inviato da Ufo13
Test List:

- Le Gem appartenenti ad un GemGroup non vengono disegnate.

- Dato un GemGroup testiamo che la texture caricata per disegnare il GemGroup sia la texture corretta.

- Dato un GemGroup testiamo che vengano rilevate le tile di tipo "angolo_alto_sx, angolo_alto_dx etc...", i bordi (alto, sx, dx, basso) e i riempimenti. Il tutto nelle corrette posizioni.

- Dato un gruppo 3x3 testiamo che ai corrispondenti angoli, bordi e riempimenti vengano disegnate le "tile" corrette.
Ottimo. Aggiungete i test man mano che ne vengono fuori altri.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:16   #8
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11782
Quote:
Originariamente inviato da thebol
Codice:
    public void draw(EngineInterface engine)
    {
        if (!isInAGroup())
        {
            sprite.draw(engine);
        }
        
    }
è la draw di gem

ps.si sarebbe potuto inserire il controllo in grid.draw(), anziche in gem.draw(); dove è piu sensato metterlo?(per passare questo test è pero obbligatorio metterlo in gem)
E' piu' sensato metterlo dove fa passare tutti i test, quindi dove l'hai messo tu
fek è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:24   #9
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Che bello...ho la ppossibilità di guardarmi un task in pair in diretta!!!
Meglio di SKY...mi prendo 2 pop-corn e me lo godo tutto !!!
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:25   #10
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Quote:
Originariamente inviato da fek
E' piu' sensato metterlo dove fa passare tutti i test, quindi dove l'hai messo tu
ashg
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:26   #11
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Codice:
    
public void testGetTexture(){
        Config config = Config.createForTesting();
        GemGroups gemGroups = new GemGroups(config.getInteger("rows"), config.getInteger("columns"));
        gemGroups.addGem(gem1);
        assertNotNull("Not texture loaded in gemGroups",gemGroups.getTexture());

    }

Ultima modifica di thebol : 20-01-2006 alle 13:31.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 13:48   #12
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Hmmm il test da NullPointerException...

La Gem va prima inserita nella griglia

Il test cambia così:

Codice:
   public void testGetTexture()
    {
        Config config = Config.createForTesting();
        GemGroups gemGroups = new GemGroups(config.getInteger("rows"), config.getInteger("columns"));
        insertAndUpdate(gem1, 11, 4);
        gemGroups.addGem(gem1);
        assertNotNull("No texture loaded in gemGroups", gemGroups.getTexture());
    }

Questo è il codice (Quick Fix) che fa passare il test

Codice:
    public Texture getTexture()
    {
        return new Texture("diamond");
    }
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 14:00   #13
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
preparo il nuovo test....

Devo testare che il GemGroup restituisca la Texture giusta in base al "GemType del gruppo"... Il GemType del GemGroup non è definito... Tralasciamo questo test un secondo

Propongo questo test
Codice:
    public void testGemType()
    {
        insertAndUpdate(gem3, 13, 3);
        insertAndUpdate(gem4, 13, 4);
        insertAndUpdate(gem5, 12, 3);
        insertAndUpdate(gem6, 12, 4);
        
        assertEquals("Wrong GemType of this GemGroup", GemType.EMERALD, gem3.getGroup().getType());
    }
Corretto il test... 12 invece di 14

Ultima modifica di Ufo13 : 20-01-2006 alle 14:09.
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 14:25   #14
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Non capisco perchè da build rotta sulla build machine... I test sono in ignore!
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 14:30   #15
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Codice:
    public GemType getType()
    {
        return gemType;
    }
il type viene definito nel costruttore

Codice:
    public GemGroups(int rows, int columns, GemType gemType)
    {
        defaultRows = rows;
        defaultColumns = columns;
        this.gemType = gemType;
    }
questo per evitare che un gruppo non abbia gemType.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 15:26   #16
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
thebol ha committato un nuovo test ma è dovuto scappare così non ha potuto postare

Codice:
    public void testDifferenteTextureLoaded(){
        insertAndUpdate(gem3, 13, 1);
        insertAndUpdate(gem4, 13, 2);
        insertAndUpdate(gem5, 12, 1);
        insertAndUpdate(gem6, 12, 2);
        
        insertAndUpdate(gem9, 13, 3);
        insertAndUpdate(gem10, 13, 4);
        insertAndUpdate(gem11, 12, 3);
        insertAndUpdate(gem12, 12, 4);
        
        assertEquals("gemGroup Texture is not correct", "gfx/gems/tiles/emerald", gem3.getGroup().getTexture().getName());
        assertEquals("gemGroup Texture is not correct", "gfx/gems/tiles/diamond", gem9.getGroup().getTexture().getName());
    }
L'ho modificato un pelo per testare che la texture sia proprio del tipo corretto

Ultima modifica di Ufo13 : 20-01-2006 alle 15:36.
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 15:40   #17
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Aggiunti i seguenti field in GemGroup (ho pure cambiato il nome da GemGroups a GemGroup per coerenza con Gem)

Codice:
private static final String GEMGROUP_PATH = "gfx/gems/tiles/";

private Texture texture;


Nel costruttore viene inizializzato l'oggetto Texture

Codice:
this.texture = new Texture(GEMGROUP_PATH.concat(gemType.name()));


Di conseguenza

Codice:
public Texture getTexture()
    {
        return texture;
    }
Build verde

Preparo il nuovo test
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 16:55   #18
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Il nuovo test è:

Codice:
    public void testCorrectGemsPositions()
    {
        Gem gem9 = Gem.create(gem3.getType(), 3500);
        Gem gem10 = Gem.create(gem3.getType(), 3500);
        Gem gem11 = Gem.create(gem3.getType(), 3500);
        
        insertAndUpdate(gem3, 13, 1);
        insertAndUpdate(gem4, 13, 2);
        insertAndUpdate(gem5, 13, 3);
        insertAndUpdate(gem6, 12, 1);
        insertAndUpdate(gem7, 12, 2);
        insertAndUpdate(gem8, 12, 3);
        insertAndUpdate(gem9, 11, 1);
        insertAndUpdate(gem10, 11, 2);
        insertAndUpdate(gem11, 11, 3);
        
        GemGroup gemGroup = gem3.getGroup();
        
        assertEquals("gem3's groupPosition is not correct", GemGroup.PositionType.BottomLeftCorner, gemGroup.getPositionType(gem3));
        assertEquals("gem4's groupPosition is not correct", GemGroup.PositionType.BottomEdge, gemGroup.getPositionType(gem4));
        assertEquals("gem5's groupPosition is not correct", GemGroup.PositionType.BottomRightCorner, gemGroup.getPositionType(gem5));
        assertEquals("gem6's groupPosition is not correct", GemGroup.PositionType.LeftEdge, gemGroup.getPositionType(gem6));
        assertEquals("gem7's groupPosition is not correct", GemGroup.PositionType.Inner, gemGroup.getPositionType(gem7));
        assertEquals("gem8's groupPosition is not correct", GemGroup.PositionType.RightEdge, gemGroup.getPositionType(gem8));
        assertEquals("gem9's groupPosition is not correct", GemGroup.PositionType.TopLeftCorner, gemGroup.getPositionType(gem9));
        assertEquals("gem10's groupPosition is not correct", GemGroup.PositionType.TopEdge, gemGroup.getPositionType(gem10));
        assertEquals("gem11's groupPosition is not correct", GemGroup.PositionType.TopRightCorner, gemGroup.getPositionType(gem11));
    }
A te thebol
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 19:25   #19
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Codice:
    private void updateGroup()
    {
        
        if (checkRectFullOfGems())
        {
            setGemPositionType();
            lightUpGems();
        }
    }
Codice:
    private void setGemPositionType()
    {
        candidateGems.put(lefTopCorner, PositionType.TopLeftCorner);
        candidateGems.put(leftBottomCorner, PositionType.BottomLeftCorner);
        candidateGems.put(rightTopCorner, PositionType.TopRightCorner);
        candidateGems.put(rightBottomcorner, PositionType.BottomRightCorner);
        
        for(Gem currentGem : candidateGems.keySet())
        {
            if (isSettablePositionType(currentGem))
            {
                if (isInnerGem(currentGem))
                {
                    candidateGems.put(currentGem, PositionType.Inner);
                
                }
                else if (currentGem.getCellRow() == topRow)
                {
                    candidateGems.put(currentGem, PositionType.TopEdge);
                }
                else if (currentGem.getCellRow() == bottomRow)
                {
                    candidateGems.put(currentGem, PositionType.BottomEdge);
                }
                else if (currentGem.getCellColumn() == leftColumn)
                {
                    candidateGems.put(currentGem, PositionType.LeftEdge);
                }
                else if (currentGem.getCellColumn() == rightColumn)
                {
                    candidateGems.put(currentGem, PositionType.RightEdge);
                }
                
            }           
        }
        
    }
4 posizione le ho gratis.
poi per le restanti settabili guardo che spigoli sono.

qua gli altri metodi che facevano arrivare la complessita a 12

Codice:
    private boolean isSettablePositionType(Gem currentGem)
    {
        return gemIsInRect(currentGem) && !gemIsACorner(currentGem);
    }

    private boolean isInnerGem(Gem currentGem)
    {
        return currentGem.getCellRow() > topRow 
            && currentGem.getCellColumn() > leftColumn 
            && currentGem.getCellRow() < bottomRow 
            && currentGem.getCellColumn() < rightColumn;
    }
currentGem è diventata una hashMap<Gem. typePosition>, ho modificato un paio di metodi che ciclavano sull'arrayList.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 20-01-2006, 20:09   #20
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Posto io il test che ha fatto thebol

L'ho completato ed ora è così

Codice:
    public void testCorrectTileDraw()
    {
        MockEngine engine = MockEngine.createForTesting(800, 600);
        
        Gem gem9 = Gem.create(gem3.getType(), 3500);
        Gem gem10 = Gem.create(gem3.getType(), 3500);
        Gem gem11 = Gem.create(gem3.getType(), 3500);
        
        insertAndUpdate(gem3, 13, 1);
        insertAndUpdate(gem4, 13, 2);
        insertAndUpdate(gem5, 13, 3);
        insertAndUpdate(gem6, 12, 1);
        insertAndUpdate(gem7, 12, 2);
        insertAndUpdate(gem8, 12, 3);
        insertAndUpdate(gem9, 11, 1);
        insertAndUpdate(gem10, 11, 2);
        insertAndUpdate(gem11, 11, 3);
        
        GemGroup gemGroup = gem3.getGroup();
        
        gemGroup.draw(PositionType.BottomLeftCorner, engine);
        assertEquals("bad texture drawn", 0, engine.getTextureRect().left());
        assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().top());
        
        gemGroup.draw(PositionType.BottomEdge, engine);
        assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().left());
        assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().top());
        
        gemGroup.draw(PositionType.BottomRightCorner, engine);
        assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().left());
        assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().top());
        
        gemGroup.draw(PositionType.LeftEdge, engine);
        assertEquals("bad texture drawn", 0, engine.getTextureRect().left());
        assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().top());
        
        gemGroup.draw(PositionType.Inner, engine);
        assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().left());
        assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().top());
        
        gemGroup.draw(PositionType.RightEdge, engine);
        assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().left());
        assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().top());
        
        gemGroup.draw(PositionType.TopLeftCorner, engine);
        assertEquals("bad texture drawn", 0, engine.getTextureRect().left());
        assertEquals("bad texture drawn", 0, engine.getTextureRect().top());
        
        gemGroup.draw(PositionType.TopEdge, engine);
        assertEquals("bad texture drawn", Gem.GEM_SIZE, engine.getTextureRect().left());
        assertEquals("bad texture drawn", 0, engine.getTextureRect().top());
        
        gemGroup.draw(PositionType.TopRightCorner, engine);
        assertEquals("bad texture drawn", Gem.GEM_SIZE * 2, engine.getTextureRect().left());
        assertEquals("bad texture drawn", 0, engine.getTextureRect().top());
    }
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione REDMAGIC 10S Pro: il gaming phone definitivo? Recensione REDMAGIC 10S Pro: il gaming phone def...
HPE Discover 2025: tra agenti intelligenti, infrastruttura AI-native e un futuro ibrido HPE Discover 2025: tra agenti intelligenti, infr...
Radeon RX 9060 XT, assalto a NVIDIA? Ecco come va la nuova scheda video di AMD Radeon RX 9060 XT, assalto a NVIDIA? Ecco come v...
LG gram Pro 16Z90TP: il notebook grande ma sottile LG gram Pro 16Z90TP: il notebook grande ma sotti...
GeForce RTX 5060, due schede alla prova per capire se 8 GB di memoria sono ancora sufficienti GeForce RTX 5060, due schede alla prova per capi...
Apple accusa un ex ingegnere di aver rub...
Headphone (1): le prime over-ear di Noth...
Nothing Phone (3): ufficiale il primo fl...
Ryan Gosling salva il mondo… con un alie...
Tesla sta per comunicare i dati delle co...
Apple Power Mac G3: ecco la foto del tea...
Sorpresa, il governo vuole prorogare il ...
DJI Power 2000: ora con 2.048 Wh e 3.000...
Addio Hytale? Forse no: l'ex creatore di...
NASA SLS potrebbe essere cancellato ma N...
ECOVACS DEEBOT mini: il robot compatto c...
AirPods Pro 2 con USB-C scendono di prez...
iPhone 16e a soli 649€, ed è un prezzo m...
Galaxy S24 256GB scende a 499€, difficil...
NASA e Netflix porteranno lo Spazio nei ...
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: 21:08.


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