Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti
Con un semplice dialogo in linguaggio naturale e la potenza di una scheda video di fascia alta è possibile costruire software funzionante da zero, senza scrivere una riga di codice e senza inviare un solo byte dei propri dati a server esterni
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 18-12-2005, 12:18   #41
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da fek
Secondo me non serve neppure derivare PivotGem. Esci dal loop in cui ti sei infilato, questo task e' molto piu' semplice di quanto pensi. Fallo in PP con Ufo e fatelo sulla linea di guida di non derivare nulla. Non serve.
io che faccio rilascio parte del task, loro fanno il task poi io adatto il mio?
thebol è offline  
Old 18-12-2005, 12:19   #42
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da thebol
io che faccio rilascio parte del task, loro fanno il task poi io adatto il mio?
Finisci il tuo task, loro partono col refactoring del tuo task e poi implementano il loro.
fek è offline  
Old 18-12-2005, 12:20   #43
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da Ufo13
hmmm mi va benissimo farlo in pair con cionci ed inizierei anche subito, ma non è meglio se aspettiamo che vicius confermi il task?
Dopo un veloce consulto con fek, direi che potete iniziare anche subito
I limiti del task sono chiari?
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 18-12-2005, 12:22   #44
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
A sto punto credo che io e cionci dovremmo semplicemente implementare la classe GemsPair e thebol i controlli su di essa (collisioni e movimenti, ovviamente rotazioni escluse)
Ufo13 è offline  
Old 18-12-2005, 12:23   #45
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
cionci se confermi iniziamo
Ufo13 è offline  
Old 18-12-2005, 12:33   #46
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Allora ridefinisco i limiti del mio task
-inserimento di 2 gemme(DO)
-gravità su entrambe le gemme(DO)(in configurazione pivot[1,4] slave[0,4])
-funzionamento downkey(venuto gratis dal sottotask precedente)(DO)
-Movimento di entrambe le gemme a sx e dx (in configurazione pivot[1,4] slave[0,4])(DO)
-Collisione a sx a dx e in basso (in configurazione pivot[1,4] slave[0,4])(TODO)
-init del gioco con 2 gemme e creazione di 2 gemme quando raggiungono il fondo(TODO)

Se volete ovviamente gestisco tutte le collisioni e i movimenti , ma dopo il refactoring del gempair magari è meglio
thebol è offline  
Old 18-12-2005, 13:20   #47
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
hmmm aspetto qualcuno che si confermi per il pair e parto subito

nessuno?
Ufo13 è offline  
Old 18-12-2005, 13:42   #48
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non posso farlo in pair programming, sono occupato in questi giorni...
cionci è offline  
Old 18-12-2005, 13:49   #49
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
E ora le collisioni...
Codice:
    public void testMoveTwoGemLeftWithCollisionOfEach()
    {
        grid.insertGemUnderControl(1, 0, gem1);
        grid.insertGemAsSlave(2,0,gem2);

        input.generateKey(KeyCode.vk_Left, timer.getTime());
        inputReactor.reactToInput();

        assertEquals("Gem pivot must not move to the left", grid.getGemAt(1, 0), gem1);
        assertEquals("Gem slave must not move to the left", grid.getGemAt(2, 0), gem2);

    }
e relativo per desta.

Codice:
    public void testMoveTwoGemRightWithCollisionOfEach()
    {
        grid.insertGemUnderControl(1, GRID_COLUMNS - 1, gem1);
        grid.insertGemAsSlave(2, GRID_COLUMNS - 1, gem2);

        input.generateKey(KeyCode.vk_Right, timer.getTime());
        inputReactor.reactToInput();

        assertEquals("Gem pivot must not move to the right", grid.getGemAt(1, GRID_COLUMNS - 1), gem1);
        assertEquals("Gem slave must not move to the right", grid.getGemAt(2, GRID_COLUMNS - 1), gem2);

    }
I test passano senza modifiche, dato il fatto che le gemme sono incolonnate(in altre configurazioni probabilmente non sara cosi).


e ora la collisione in basso (aka bloccare le gemme dalla caduta per gravita)

Codice:
    public void testTwoGemIsNotFalling()
    {      
        grid.insertGemUnderControl(GRID_ROWS - 1, 0, gem1);
        grid.insertGemAsSlave(GRID_ROWS - 2, 0, gem2);
        grid.update();

        assertTrue(gem1.isNotFalling());
        assertTrue(gem2.isNotFalling());
    }
questo fallisce \o/ ma modificando la update di grid
Codice:
        if(gemCantMoveDown(getGemUnderControl()))
        {
	[...]
            if (getGemSlave() != null){
               getGemSlave().dropGem();

            }
        }
[NB manca l'align e il bright, lo faccio io o famo in un altro task?]


build verde ora si passa all'inserimento all'inizio delle 2 gemme, e durante il gioco
thebol è offline  
Old 18-12-2005, 13:56   #50
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
beh appena si offre qualcuno parto (fek? )... Sennò posso anche farlo non in pair
Ufo13 è offline  
Old 18-12-2005, 15:20   #51
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
a questo punto, si potrebbe incominciare a metter insertTwoNewGem(); al posto di insertNewGem nel costruttore di grid.
Codice:
    public void testTwoGemInsertion()
    {
        assertNotNull("no gem Pivot inserted in grid after creation",
            grid.getGemUnderControl());
        assertNotNull("no gem Slave inserted in grid after creation",
            grid.getGemSlave());    
    }
e implementazione
Codice:
   public Grid(Rectangle bounds, Config config, GemGenerator gemGenerator)
    {
	     [...]

	//insertNewGem();
	insertTwoNewGem();
    }

Ma questo rompe assai la build, ma basta cambiare il createForTesting di grid in maniera che rimuova anche la gemma slave da grid e torna ad andare tutto
Codice:
    public static Grid createForTesting(GemGenerator gemGenerator)
    {
        Grid grid = new Grid(new Rectangle(40, 40, 295, 487), Config
            .createForTesting(), gemGenerator);

        grid.removeGemFromGrid(grid.getGemUnderControl());
        grid.removeGemFromGrid(grid.getGemSlave());
        grid.gemUnderControl = null;
        grid.gemSlave = null;
        grid.empty = true;

        return grid;
    }

ora manca che a quando le gemme raggiungono il fondo, vengano create 2 gemme invece che 1

Codice:
   public void testTwoNewGemInsertion()
    {
        grid.insertGemUnderControl(13, 4, gem1);
        grid.insertGemAsSlave(12,4,gem2);
        controller.update(timer);
        assertNotNull(grid.getGemUnderControl());
        assertTrue(gem1 != grid.getGemUnderControl());
        assertNotNull(grid.getGemSlave());
        assertTrue(gem2 != grid.getGemSlave());

    }
e implementazione

Codice:
    private void handleWaitState(AbstractTimer timer)
    {
        if(timer.getTime() - timeBase >= delay)
        {
            if(isGameOver())
            {
                return;
            }

            //grid.insertNewGem();
            grid.insertTwoNewGem();
            waitState = false;
        }
    }

questo rompe da problemi a testAfterSecondDelay, ma basta spostare il piazzamento della gemma in 12,4(quello previsto dall'init) e tutto ridiventa verde

Codice:
	controller.setDelay(300);
	grid.insertGemUnderControl(12, 4, gem1);
	controller.update(timer);
	[...]
thebol è offline  
Old 18-12-2005, 16:30   #52
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Secondo me Grid non deve sapere dell'esistenza di due gemme sotto controllo. Questo concetto deve essere esclusiva di GridControl. In altre parole vi avevo chiesto di non mettere nulla in Grid che non fosse strettamente necessario e questo non mi sembra il caso. Voglio essere molto draconiano su questo punto.
fek è offline  
Old 18-12-2005, 16:43   #53
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da fek
Secondo me Grid non deve sapere dell'esistenza di due gemme sotto controllo. Questo concetto deve essere esclusiva di GridControl. In altre parole vi avevo chiesto di non mettere nulla in Grid che non fosse strettamente necessario e questo non mi sembra il caso. Voglio essere molto draconiano su questo punto.
ti giuro che avevo fatto lo stesso pensiero.

solo che essendo la gemundercontrol in grid, ho preferito mantenere per ora il fatto delle 2 gemme in grid, aspettando(e proponendo) di spostare le gemme controllate in gridcontroll per il refactoring di gemPairs

grid deve essere solo una griglia dove inserire gemme, e che dia responsi se una gemma e spostabile o no, etc.


ora aggiungo un test per verificare che anche la seconda gemma contribuisca al brighten, poi faccio merg e committo il tutto.
thebol è offline  
Old 18-12-2005, 16:51   #54
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Prima di fare il commit puoi togliere il concetto di coppia di gemme da Grid?
fek è offline  
Old 18-12-2005, 16:56   #55
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
A proposito di Grid e Gem... Secondo me la classe Cell non dovrebbe stare dentro Gem...
Ufo13 è offline  
Old 18-12-2005, 17:00   #56
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da fek
Prima di fare il commit puoi togliere il concetto di coppia di gemme da Grid?
ok, tolgo proprio gemundercontrol e gemslave e le sposto(con relative logiche) in gridcontroll.

speriamo sia abbastanza indolore
thebol è offline  
Old 18-12-2005, 17:36   #57
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Ufo13
A proposito di Grid e Gem... Secondo me la classe Cell non dovrebbe stare dentro Gem...
Secondo me sì... Prima era in Grid ed in pratica mettendola dentro Gem abbiamo eliminato una grande quantità di codice (ad esempio un funzione chiamata findGemCell che trovava la posizione di una Gem all'interno di grid scorrendo tutta la matrice)...
Inoltre il fatto che stia dentro Gem è logicamente corretto: una Gem sta in una data posizione e Cell (magari il nome non è il massimo) ne indica la posizione...
cionci è offline  
Old 18-12-2005, 17:47   #58
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Sono d'accordissimo che la gemma ha una posizione dentro la griglia però, a parer mio, il concetto di Cell (vista come elemento di Grid) ed il concetto di Gemma sono abbastanza separati da giustificare l'indipendenza della classe Cell (e non un oggetto Cell) da Gem...

Se proprio non vi piace la classe Cell separata... Perchè non spostarne la dichiarazione dentro Grid invece che dentro Gem?

Ultima modifica di Ufo13 : 18-12-2005 alle 17:50.
Ufo13 è offline  
Old 18-12-2005, 18:00   #59
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da Ufo13
Se proprio non vi piace la classe Cell separata... Perchè non spostarne la dichiarazione dentro Grid invece che dentro Gem?
Era già dentro Grid...spostarla in Gem ha semplificato notevolmente il design... Magari come dicevo si potrebbe rinominare...
cionci è offline  
Old 18-12-2005, 18:10   #60
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Secondo me il design ne è compromesso... Anche rinominandola continui ad avere dentro la classe Gem una classe che non c'entra con Gem...

Puoi benissimo tenere Cell in Grid e lasciare tutto com'è

cambia una sola riga in Gem.java:

Codice:
private Cell cell;
diventa:

Codice:
private Grid.Cell cell;
Ufo13 è offline  
 Discussione Chiusa


Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Insta360 X6: Dolby Vision, 8K e montaggio "Zero Editing" Insta360 X6: Dolby Vision, 8K e montaggio "...
Sennheiser Momentum 5, i nuovi auricolar...
Serie A e Serie B al via: guida ai nuovi...
CMF Buds Neo, il sub-brand di Nothing pr...
GTA 6 è già un successo: i preordini sta...
Una Visa scaduta può ancora pagar...
I migliori robot aspirapolvere in offert...
The Duskbloods non cambia la direzione d...
Un weekend di ribassi eccezionali su Ama...
Cosa succede se l'IA diventa una persona...
Tutta la stagione NFL 2026/2027 è su DAZ...
I 3 portatili in offerta migliori di tut...
iPhone 17 Pro e Pro Max ai minimi storic...
SK hynix, il boom dell'HBM finisce in bu...
Linktour Alumi, test drive: la microcar ...
Dopo l'atterraggio, il razzo spaziale ci...
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: 20:34.


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