Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Tra audio e AI: la ricetta di Qualcomm per l'agentic AI
Snapdragon Soung Gen 2 è la piattaforma Qualcomm per i dispositivi audio sempre più integrati nel mondo dell'intelligenza artificiale: al prorpio interno tanta potenza elaborativa per gestire al meglio le necessità d'uso dell'agentic AI
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6
In occasione del proprio Snapdragon Summit Qualcomm annuncia i due nuovi chip per dispositivi mobile di fascia alta che entreranno nel mercato nel corso del 2027: tanta potenza a disposizione per elaborazioni di intelligenza artificiale sempre più complesse
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
Hogwarts arriva in fascia media grazie a realme, con una special edition che unisce la Quadra Light-Sensing Color-changing Tech, un baule in stile Hogwarts Express pieno di collezionabili e una scheda tecnica sostanzialmente identica al 16 Pro di partenza: ecco cosa cambia davvero, come si comporta nell'uso quotidiano e quanto vale in base al prezzo di 699,99 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-02-2008, 19:25   #21
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Quote:
Originariamente inviato da Ufo13 Guarda i messaggi
Minchia Bonfo avevamo appena iniziato a cambiare tutto in Cell e hai ri-revertato i cambiamenti fatti

L'idea e` usare Cell ovunque.
Azz... ho fatto un macello

Ok... se non l'avete ancora fatto metto tutto a Cell, anche se secondo me ci complica la vita.
Ma se lo dice il God in persona

EDIT:
Io sto ancora cercando di semplificare il GridTestCase, la sto prendeno un po' alla lontana mettendoa posto TestGrid, ma cosi' dovremmo avere molto piu' controllo sui test in Grid, rendendoci piu' semplice il GridTestCase e di conseguenza l'80% dei test fatti fino ad ora.
Sono esentato dal Refactor This oppure prima li faccio fuori tutti e poi posso andare avanti ?!
__________________
Software engineer
Bonfo's Blog

Ultima modifica di Bonfo : 04-02-2008 alle 19:29.
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 20:40   #22
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Era :

it.diamonds.grid.action.CrushByChestAction.java Linea 62

Codice:
    private void getAdjacentCrushableGems(Droppable crushSourceDroppable,
        DroppableList adiacentCrushableGems)
    {
        // TODO: REFACTOR THIS

        Region sourceCell = crushSourceDroppable.getRegion();

        if(sourceCell.getLeftColumn() >= 1)
        {
            getLeftOrRightAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems, GO_LEFT);
        }

        if(sourceCell.getRightColumn() < getGrid().getNumberOfColumns() - 1)
        {
            getLeftOrRightAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems, GO_RIGHT);
        }

        if(sourceCell.getTopRow() >= 1)
        {
            getUpOrDownAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems, GO_UP);
        }

        if(sourceCell.getBottomRow() < getGrid().getNumberOfRows() - 1)
        {
            getUpOrDownAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems, GO_DOWN);
        }
    }
E'

Codice:
    private void getAdjacentCrushableGems(Droppable crushSourceDroppable,
        DroppableList adiacentCrushableGems)
    {
            getLeftOrRightAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems, GO_LEFT);
            
            getLeftOrRightAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems, GO_RIGHT);

            getUpOrDownAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems, GO_UP);

            getUpOrDownAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems, GO_DOWN);
    }
E ho spostato i controlli nei metodi getUpOrDownAdjacent.... getLeftOrRight...


ad esempio in getUpOrDown... è stato aggiunto:

Codice:
        if(row + direction.deltaY() < 0 || row + direction.deltaY() > getGrid().getNumberOfRows() - 1)
        {
            return;
        }
Analogo è stato fatto nella getLeftOrRight.... ma con le colonne al posto delle righe

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 20:44   #23
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Bonfo Guarda i messaggi
Sono esentato dal Refactor This oppure prima li faccio fuori tutti e poi posso andare avanti ?!
La seconda che hai detto
fek è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 20:45   #24
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da AnonimoVeneziano Guarda i messaggi
E ho spostato i controlli nei metodi getUpOrDownAdjacent.... getLeftOrRight...


ad esempio in getUpOrDown... è stato aggiunto:

Codice:
        if(row + direction.deltaY() < 0 || row + direction.deltaY() > getGrid().getNumberOfRows() - 1)
        {
            return;
        }
Analogo è stato fatto nella getLeftOrRight.... ma con le colonne al posto delle righe

Ciao

Bene, mi piace molto, mi rendi ora piu' chiaro quell'if? E' troppo lunghetto.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 21:02   #25
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da fek Guarda i messaggi
Bene, mi piace molto, mi rendi ora piu' chiaro quell'if? E' troppo lunghetto.
Mmm, mi è venuta in mente questa soluzione :

La funzione da rifattorizzare diventa :

Codice:
    private void getAdjacentCrushableGems(Droppable crushSourceDroppable,
        DroppableList adiacentCrushableGems)
    {
            getLeftAndRightAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems);

            getUpAndDownAdjacentCrushableGems(crushSourceDroppable,
                adiacentCrushableGems);
    }
e le due funzioni getUpAndDown... e getLeftAndRight... diventano :

Codice:
    private void getUpAndDownAdjacentCrushableGems(Droppable source,
        DroppableList adiacentCrushableGems)
    {
        int row = source.getRegion().getTopRow();
        Direction direction = GO_UP;
       
        if(row + direction.deltaY() >= 0)
        {
           for(int column = source.getRegion().getLeftColumn(); column <= source.getRegion().getRightColumn(); column++)
           {
                Droppable toTest = getGrid().getDroppableAt(row + direction.deltaY(), column);
                tryToAddGemToCrushableGems(toTest, source, adiacentCrushableGems);
           }
        }

        row = source.getRegion().getBottomRow();
        direction = GO_DOWN;

        if(row + direction.deltaY() <= getGrid().getNumberOfRows() - 1)
        {
           for(int column = source.getRegion().getLeftColumn(); column <= source.getRegion().getRightColumn(); column++)
           {
                Droppable toTest = getGrid().getDroppableAt(row + direction.deltaY(), column);
                tryToAddGemToCrushableGems(toTest, source, adiacentCrushableGems);
           }
        }
    }


    private void getLeftAndRightAdjacentCrushableGems(Droppable source,
        DroppableList adiacentCrushableGems)
    {
        int column = source.getRegion().getLeftColumn();
        Direction direction = GO_LEFT;
        
        if(column + direction.deltaX() >= 0)
        {
            for(int row = source.getRegion().getTopRow(); row <= source.getRegion().getBottomRow(); row++)
            {
                Droppable toTest = getGrid().getDroppableAt(row, column + direction.deltaX());
                tryToAddGemToCrushableGems(toTest, source, adiacentCrushableGems);
            }
        }
        
        column = source.getRegion().getRightColumn();
        direction = GO_RIGHT;
        
        if(column + direction.deltaX() <= getGrid().getNumberOfColumns() - 1)
        {
            for(int row = source.getRegion().getTopRow(); row <= source.getRegion().getBottomRow(); row++)
            {
                Droppable toTest = getGrid().getDroppableAt(row, column + direction.deltaX());
                tryToAddGemToCrushableGems(toTest, source, adiacentCrushableGems);
            }
        }
    }
Meglio o peggio?

Il numero di righe delle funzioni UpAndDown e LeftAndRight rimane praticamente invariato (2 righe in più)

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 21:06   #26
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Preferivo l'altra. Le due funzione getUpAndDown... e l'altra sono troppo complesse. Non si capisce che cosa stiano facendo solo leggendo il codice.
Lo dice anche il nome secondo stesso secondo me. Io dividerei ognuna in due. Puoi lavorarci un po'?
fek è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 21:10   #27
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da fek Guarda i messaggi
Preferivo l'altra. Le due funzione getUpAndDown... e l'altra sono troppo complesse. Non si capisce che cosa stiano facendo solo leggendo il codice.
Lo dice anche il nome secondo stesso secondo me. Io dividerei ognuna in due. Puoi lavorarci un po'?
Quindi ritorno alla vecchia soluzione con l'if semplificato?

EDIT

Così va bene l'if?

Codice:
CAVOLATA :fagiano:
__________________
GPU Compiler Engineer

Ultima modifica di AnonimoVeneziano : 04-02-2008 alle 21:14.
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 21:11   #28
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da AnonimoVeneziano Guarda i messaggi
Quindi ritorno alla vecchia soluzione con l'if semplificato?
Vedi tu
fek è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 21:21   #29
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da fek Guarda i messaggi
Vedi tu
Ok, torniamo al vecchio

Così ? :

Codice:
        row += direction.deltaY();
        
        if(row < 0 || row > getGrid().getNumberOfRows() - 1)
        {
            return;
        }
Poi anche sotto nel "for" ovviamente verrà usato "row" anzichè "row + direction.deltaY()" (stessa cosa per l'altra funzione)

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 21:41   #30
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Rifattorizzo questo:

Codice:
public void testDrawTwoFrames()
    {
        int frameSize = 32;
        
        AnimatedSprite animatedSprite = createAnimatedSprite(3, 100, frameSize);
        
        timer.advance(ANIMATION_DELAY);

        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);

        assertEquals("bad texture drawn", 0,
            ((MockEngine)engine).getImageRect().getLeft());
        assertEquals("bad texture drawn", frameSize,
            ((MockEngine)engine).getImageRect().getTop());

        timer.advance(100);
        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);

        assertEquals("bad texture drawn", 0,
            ((MockEngine)engine).getImageRect().getLeft());
        assertEquals("bad texture drawn", frameSize * 2,
            ((MockEngine)engine).getImageRect().getTop());
    }
Spezzato in 3 test. Ho aggiunto il test per il frame iniziale.

Codice:
    public void testRenderingOfFirstFrame()
    {
        AnimatedSprite animatedSprite = createAnimatedSprite(2, 100, FRAME_SIZE);
        
        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);
        
        Rectangle expectedImageRectangle = new Rectangle(0, 0, FRAME_SIZE, FRAME_SIZE);
        assertEquals(expectedImageRectangle, engine.getImageRect());
    }
    
    public void testRenderingOfSecondFrame()
    {
        AnimatedSprite animatedSprite = createAnimatedSprite(2, 100, FRAME_SIZE);
        
        timer.advance(ANIMATION_DELAY);
        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);
        
        Rectangle expectedImageRectangle = new Rectangle(0, FRAME_SIZE, FRAME_SIZE, FRAME_SIZE);
        assertEquals(expectedImageRectangle, engine.getImageRect());
    }
    
    public void testRenderingOfThirdFrame()
    {
        final int animationUpdateRate = 100;
        AnimatedSprite animatedSprite = createAnimatedSprite(3, animationUpdateRate, FRAME_SIZE);
        
        timer.advance(ANIMATION_DELAY);
        timer.advance(animationUpdateRate);
        
        animatedSprite.updateAnimation(timer.getTime());
        animatedSprite.getSprite().draw(engine);
        
        Rectangle expectedImageRectangle = new Rectangle(0, FRAME_SIZE * 2, FRAME_SIZE, FRAME_SIZE);
        assertEquals(expectedImageRectangle, engine.getImageRect());
    }

Si potrebbe fare ancora qualcosina ma mi accontento, e` abbastanza chiaro penso :o
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 21:57   #31
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Prima:

Codice:
    private Droppable getGemToDelete(Droppable falshingGem)
    {
        //TODO: REFACTOR THIS
        
        Region region = falshingGem.getRegion();
        Cell cell = new Cell(region.getTopRow(), region.getLeftColumn());

        Droppable gemToDelete = searchGemToDelete(cell);
        
        if(gemToDelete == null)
        {
            gemToDelete = searchLeft(cell);

            if(gemToDelete == null)
            {
                gemToDelete = searchRight(cell);

                if(gemToDelete == null)
                {
                    gemToDelete = searchUp(cell);
                }
            }
        }
        return gemToDelete;
    }


    private Droppable searchGemToDelete(Cell cell)
    {
        if((cell.getRow() < getGrid().getNumberOfRows() - 1))
        {
            return getGem(cell.getLower());
        }
        return null;
    }


    private Droppable searchLeft(Cell cell)
    {
        if(cell.getColumn() >= 1)
        {
            return getGem(cell.getLeft());
        }
        return null;
    }


    private Droppable searchRight(Cell cell)
    {
        if(cell.getColumn() < getGrid().getNumberOfColumns() - 1)
        {
            return getGem(cell.getRight());
        }
        return null;
    }


    private Droppable searchUp(Cell cell)
    {
        if(cell.getRow() > 1)
        {
            return getGem(cell.getUpper());
        }
        return null;
    }
Dopo:

Codice:
    private Droppable getGemToDelete(Droppable falshingGem)
    {        
        Region region = falshingGem.getRegion();
        Cell cell = new Cell(region.getTopRow(), region.getLeftColumn());
        
        Direction directions[] = {Direction.GO_DOWN, Direction.GO_LEFT, Direction.GO_RIGHT, Direction.GO_UP};

        for (Direction direction : directions)
        {
            Droppable gemToDelete = searchGemToDelete(cell, direction);
            
            if (gemToDelete != null)
            {
                return gemToDelete;
            }
        }
        
        return null;
    }


    private Droppable searchGemToDelete(Cell cell, Direction direction)
    {
        final int rowToSearch = cell.getRow() + direction.deltaY();
        final int columnToSearch = cell.getColumn() + direction.deltaX();
        
        final boolean isValidCell = getGrid().isValidCell(rowToSearch, columnToSearch);
        if (!isValidCell)
        {
            return null;
        }
        
        return getGem(new Cell(rowToSearch, columnToSearch));
    }
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 22:25   #32
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 22:27   #33
Baol
Member
 
L'Avatar di Baol
 
Iscritto dal: Apr 2006
Città: Gazzaniga (BG)
Messaggi: 67
Quote:
Originariamente inviato da Ufo13 Guarda i messaggi
Minchia Bonfo avevamo appena iniziato a cambiare tutto in Cell e hai ri-revertato i cambiamenti fatti
Per evitare cose del genere o sovrapposizioni di lavoro non si potrebbe creare un topic "Io sto lavorando su..." in cui inserire cosa si sta facendo? Ad esempio su quale Refactor This ci si sta impegnando? (questo eventualmente si può fare anche qua, postando prima di modificarlo ed editando a lavoro completato)
__________________
"Non esiste l'impossibile. L'impossibile non esiste." Baolian, Libro V


Baol è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 23:16   #34
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Io sto rimettendo tutti i cell che avevo tolto!

Mi ci vorra' un po', anche perche' nel mentre lavoro :P
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 23:16   #35
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Baol Guarda i messaggi
Per evitare cose del genere o sovrapposizioni di lavoro non si potrebbe creare un topic "Io sto lavorando su..." in cui inserire cosa si sta facendo? Ad esempio su quale Refactor This ci si sta impegnando? (questo eventualmente si può fare anche qua, postando prima di modificarlo ed editando a lavoro completato)
Si' buona idea. Scrivete qui il Refactor This sul quale state lavorando e poi editatelo con la soluzione.

Fede, refactoring stilosissimo
fek è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 23:39   #36
Baol
Member
 
L'Avatar di Baol
 
Iscritto dal: Apr 2006
Città: Gazzaniga (BG)
Messaggi: 67
Lavorando in CrushByFlashAction.java su getAllGemsSameOf.
Prima:
Codice:
    //TODO: REFACTOR THIS
    private DroppableList getAllGemsSameOf(Droppable gemToDelete)
    {
        DroppableList gemList = new DroppableList();
        Droppable gem;
        
        for(int row = getGrid().getNumberOfRows() - 1; row >= 0; row--)
        {
            for(int column = 0; column < getGrid().getNumberOfColumns(); column++)
            {
                gem = getGrid().getDroppableAt(row, column);
                if(gem == null)
                {
                    continue;
                }

                if(gem.getGridObject().getColor() == gemToDelete.getGridObject().getColor())
                {
                    if(!gemList.contains(gem))
                    {
                        gemList.add(gem);
                    }
                }
            }
        }
        return gemList;
    }
Dopo...
Codice:
    public void apply(DroppableList gridElements)
    {
        super.apply(gridElements);
        applyToEachDroppable();
    }
    ...

    private DroppableList getAllGemsSameOf(Droppable gemToDelete)
    {
        DroppableList gridElements = getGridElements();
        DroppableList gemSameList = new DroppableList();

        for(Droppable droppable : gridElements)
        {
            if(droppable.getGridObject().getColor() == gemToDelete.getGridObject().getColor())
            {
                gemSameList.add(droppable);
            }
        }

        return gemSameList;
    }
__________________
"Non esiste l'impossibile. L'impossibile non esiste." Baolian, Libro V



Ultima modifica di Baol : 05-02-2008 alle 01:17.
Baol è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2008, 23:55   #37
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Rimettendo tutti i new Cell() dentro codice e test, mi sono reso conto chesi usanbo moltissimo la coppia 0, 4 e 1, 4, ovvero qulle delle gemsPair.

Che ne di te di un bel campo statico in GemsPair??
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 00:06   #38
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da Baol Guarda i messaggi
Lavorando in CrushByFlashAction.java su getAllGemsSameOf.
Prima:
Codice:
    //TODO: REFACTOR THIS
    private DroppableList getAllGemsSameOf(Droppable gemToDelete)
    {
        DroppableList gemList = new DroppableList();
        Droppable gem;
        
        for(int row = getGrid().getNumberOfRows() - 1; row >= 0; row--)
        {
            for(int column = 0; column < getGrid().getNumberOfColumns(); column++)
            {
                gem = getGrid().getDroppableAt(row, column);
                if(gem == null)
                {
                    continue;
                }

                if(gem.getGridObject().getColor() == gemToDelete.getGridObject().getColor())
                {
                    if(!gemList.contains(gem))
                    {
                        gemList.add(gem);
                    }
                }
            }
        }
        return gemList;
    }
...

Mmm, qua ci vorrebbe un modo facile per ottenere tutte le gemme dello stesso tipo nella griglia ...
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 00:17   #39
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Scusate, ma perche' invece di andare per riga e per colonna non andiamo con l'iteratore sull'elenco di droppabales??

Codice:
            for(Droppable droppabel : grid.getDroppableList()) {
            }
e se poi abbiamo problemi di iterazione doppia basta fare:
Codice:
            for(Iterator iterator = grid.getDroppableList().iterator(); iterator.hasNext();)
            {
                Droppable droppable = (Droppable)iterator.next();
                
            }
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2008, 00:19   #40
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Piccolo problemi che ritorna prepotente...

Quando creo una cella con valori negativi mi becco una exception.
Che faccio: aggiungo controlli ovunque??

in realta' basta che isValidCell continui aragionare a row e column. Che si fa?
__________________
Software engineer
Bonfo's Blog

Ultima modifica di Bonfo : 05-02-2008 alle 00:25.
Bonfo è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Tra audio e AI: la ricetta di Qualcomm per l'agentic AI Tra audio e AI: la ricetta di Qualcomm per l'age...
Qualcomm annuncia la nuova generazione di SoC Snapdragon 8 Elite Gen 6 Qualcomm annuncia la nuova generazione di SoC Sn...
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Meta Muse Charm: sembra un Tamagotchi, m...
Ray-Ban Meta Audio: occhiali smart senza...
Meta VR Glasses: Meta porta la realt&agr...
Meta Ray-Ban Display, gli occhiali diven...
Agente AI di OpenAI oltre i limiti: acce...
Xiaomi 18 Pro e 18 Pro Max, i nuovi flag...
ESA e Mistral hanno stretto un accordo p...
AstroForge presenta Autonomy-1: un satel...
Neutralizzata da Microsoft EvilTokens, l...
Porsche mette alla prova i Tesla Superch...
Roborock Saros 20 Flow Complete arriva i...
Basta un comando digitato nel terminale ...
La corsa alla superintelligenza è...
Le memorie cinesi sfidano sé stes...
Dash cam 4K con doppia telecamera, GPS, ...
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: 06:53.


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