Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 12-12-2005, 16:11   #1
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
[CICLO 6/bis] Xmas Story 1

Dato che a Natale siamo tutti più buoni, oggi apriamo un ciclo "speciale", dalla durata superiore al solito, e che si chiuderà il 6 gennaio 2006 (giorno fino al quale siamo formalmente - ma non effettivamente - in pausa). Si tratterà di un ciclo differente perchè stavolta sarà aperto, e quindi è possibile che dei nuovi task vengano aggiunti in seguito. Quindi, sbirciate spesso questo post... potreste trovare qualche sorpresa di tanto in tanto

Storia: Storia di servizio. Quando la colonna centrale in cui le gemme entrano nell'area di gioco è piena, il gioco deve smettere di crearle, e deve far comparire al centro dello schermo una png con la scritta Game Over. Occorre anche fare in modo che, quando viene premuto un tasto direzionale (sinistra o destra) mentre l'altro opposto è già premuto, venga eliminata l'incertezza sulla colonna di posizionamento della gemma, che deve restare fissa nella colonna in cui si trovava un istante prima della pressione del tasto contrastante.
To be continued...

Punti cardine da tenere a mente durante i lavori:
  • Mai fare a gara a chi finisce il task per primo, meglio procedere con calma, altrimenti perderemo molto più tempo in seguito
  • Evitiamo di complicarci la vita, esiste di certo una soluzione più semplice di quella che abbiamo pensato di implementare
  • MAI aggiungere elementi non richiesti esplicitamente dai task: se mai serviranno, se ne parlerà nelle prossime storie
  • Comunichiamo il più possibile, se qualcosa non è chiaro discutiamone tutti i dettagli fino ad eliminare ogni dubbio, anche il più insignificante
  • Postare sempre la test list PRIMA di mettere mano al codice
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.

Ultima modifica di Jocchan : 13-12-2005 alle 12:03.
Jocchan è offline  
Old 12-12-2005, 16:50   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Ecco i task per il ciclo natalizio.

Task:
Xmas.1.1: 71104:
Interrompere l'inserimento di nuove gemme quando la colonna centrale si riempie dopo di che si deve mostrare la scritta "Game Over" all'interno della griglia.
Xmas.1.2: cisc: 3 giorni
Aggiungere un ritardo di 300 millisecondi tra l'istante in cui la gemma si ferma e la creazione di una nuova gemma.
Xmas.1.3: cionci: 2 giorni
Ignorare la pressione del tasto direzionale finche quello con direzione opposto rimane premuto.
Xmas.1.4: Ufo13: completo
Portare a 50 millisecondi il repeat delay dopo la prima volta che è stato superato. E riportarlo al suo valore originale quando il tasto viene rilasciato.

ciao

Ultima modifica di VICIUS : 16-12-2005 alle 12:38.
VICIUS è offline  
Old 12-12-2005, 17:11   #3
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Specifico meglio il task 3 per evitare incomprensioni.
Attualmente, se tengo premuto un tasto direzionale (ad esempio destra), ed in seguito premo quello opposto (in questo caso sinistra) senza rilasciare il precedente, spesso la gemma, prima di continuare la sua caduta senza spostarsi lateralmente, ha un comportamento imprevedibile: può rimanere nella stessa colonna, finire in una adiacente, oppure spostarsi temporaneamente e tornare in quella iniziale.
Lo scopo del task è fare in modo che questo non avvenga, e che - finchè entrambi i tasti restano premuti - la gemma rimanga nella stessa colonna, e continui a cadere in questa, senza incertezze (che, nella foga del gioco vero e proprio, possono portare a un posizionamento errato).
La necessità di apportare questa correzione nasce dalla possibilità che il giocatore cambi idea all'ultimo secondo, e decida di posizionare la gemma da un'altra parte: questo evento può comportare la pressione contemporanea di due direzioni contrastanti, e non possiamo permetterci di avere imprecisioni in questa circostanza
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 12-12-2005, 17:52   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
UAO LA STORIA DI NATALE, A ME A ME!!!
li voglio fare tutti io!!!

comincio col primo ^^
dubbi: la scritta "Game Over" come ce la scrivo? c'è qualche texture? e a che coordinate la scrivo?
ora penso alla test list
71104 è offline  
Old 12-12-2005, 17:53   #5
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
Jocchan; mi puoi spiegare emglio il problema che vuoi risolvere ?

a) pressione continua del tasto a dx...pressione del tasto sx, la gemma si deve fermare
b) pressione contemporanea di entrambi i tasti la gemma deve restare ferma...
cionci è offline  
Old 12-12-2005, 17:56   #6
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da 71104
UAO LA STORIA DI NATALE, A ME A ME!!!
li voglio fare tutti io!!!

comincio col primo ^^
dubbi: la scritta "Game Over" come ce la scrivo? c'è qualche texture? e a che coordinate la scrivo?
ora penso alla test list
Jocchan fra un po prepara la texture tu non devi far altro che metterla al centro della griglia.

ciao
VICIUS è offline  
Old 12-12-2005, 18:02   #7
cisc
Senior Member
 
L'Avatar di cisc
 
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
volevo fare la stessa domanda di cionci, cmq, vorrei prenotarmi per il Xmas.1.2, tempo 3 giorni (meglio essere larghi)
__________________
GNU MyServer Wants YOU!!
We live thinking we will never die. We die thinking we had never lived. Jason Becker
cisc è offline  
Old 12-12-2005, 18:08   #8
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 cisc
volevo fare la stessa domanda di cionci,
Anche perchè risolvendone uno si cambia l'altro...
Risolvendo il problema a)...se si premono entrambi i tasti la gemma si sposta nella cella corrispondente al tasto premuto prima fra i due (se la pressione va a cavallo fra due polling)

Al massimo possiamo lasciare il b) com'è ora e risolvere il problema a)...
cionci è offline  
Old 12-12-2005, 18:11   #9
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Texture committata.

Per il problema della pressione contemporanea, si tratta solo dell'incertezza che si ha quando si preme un tasto opposto a quello già in pressione.
La gemma ogni tanto o si sposta di una colonna, e non deve accadere, oppure si sposta e torna nella precedente.
In realtà bisogna fare in modo che, quando si preme il secondo tasto, oltre a quello premuto, la gemma non abbia questa incertezza.
Se sto tenendo premuto destra e, quando sono nella casella 4, inizio a tenere premuto anche sinistra, la gemma deve continuare a cadere nella casella 4 fino a quando non rilascio uno dei due pulsanti.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 12-12-2005, 19:31   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ho letto il codice attuale e riflettuto, e per la cronaca mi sono anche fatto consigliare da Jocchan; inoltre mi sono fatto un panino con insalata e mortazza, due solitari di Windows, una partita a campo minato, fumato una sigaretta, guardato in aria, fatto una cosa che non si dice, ed infine rieccomi qua sul forum

il problema è il seguente: il codice per catturare l'eccezione e visualizzare uno sprite con scritto "Game Over" dove lo metto, in Grid, in Game o in una classe apposta?

Jocchan dice Grid e io mi trovo d'accordo...

questo è il test che ho fatto (si troverebbe in TestGrid):
Codice:
    public void testGridStops()
    {
        grid.insertGem(1, 4, gem1);
        grid.getGemUnderControl().dropGem();
        grid.insertGem(0, 4, gem2);
        try
        {
            grid.update();
        }
        catch(IllegalArgumentException e)
        {
            fail("Grid.update is trying to put other gems");
        }
    }
eventualmente poi potrei anche creare una nuova classe GameOverException in modo tale che insertNewGem cattura la IllegalArgumentException causata dall'inserzione di una gemma quando non c'è spazio e la converte lanciando una GameOverException.

poi magari la test listi si potrebbe completare con un test per verificare col MockEngine che Grid.update, una volta catturata l'eccezione, disegni lo sprite "Game Over".
71104 è offline  
Old 12-12-2005, 19:45   #11
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
ho letto il codice attuale e riflettuto, e per la cronaca mi sono anche fatto consigliare da Jocchan; inoltre mi sono fatto un panino con insalata e mortazza, due solitari di Windows, una partita a campo minato, fumato una sigaretta, guardato in aria, fatto una cosa che non si dice, ed infine rieccomi qua sul forum
Ma la test list non include una descrizione dettagliata delle tue sessioni onaniste

Quote:
il problema è il seguente: il codice per catturare l'eccezione e visualizzare uno sprite con scritto "Game Over" dove lo metto, in Grid, in Game o in una classe

Jocchan dice Grid e io mi trovo d'accordo...
apposta?
Allora prima di mettere dell'altro codice in Grid, devi avere un'ottima ragione, ma proprio ottima, e spiegarcela dettagliatamente e poi giustificarla e poi, quando hai finito, devi pensare di nuovo se per caso non c'e' una soluzione migliore.
Tradotto: non mettere nulla in Grid se non strettamente necessario ma anche di piu'.

Quote:
eventualmente poi potrei anche creare una nuova classe GameOverException in modo tale che insertNewGem cattura la IllegalArgumentException causata dall'inserzione di una gemma quando non c'è spazio e la converte lanciando una GameOverException.
Non mi piace come idea, perche' le eccezioni servono solo per comunicare condizioni eccezionali nell'esecuzione del programma, ovvero condizioni che non dovrebbero mai accadere in una normale esecuzione (sono per l'appunto eccezionali). Il Game Over e' una condizione normale alla fine del gioco, quindi quest'informazione non andrebbe veicolata per mezzo di un'eccezione.
fek è offline  
Old 12-12-2005, 21:12   #12
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
prendo il secondo task
Ufo13 è offline  
Old 12-12-2005, 22:30   #13
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da Ufo13
prendo il secondo task
E' già prenotato da cisc
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline  
Old 13-12-2005, 00:24   #14
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Allora il quarto
Ufo13 è offline  
Old 13-12-2005, 02:37   #15
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 Jocchan
Se sto tenendo premuto destra e, quando sono nella casella 4, inizio a tenere premuto anche sinistra, la gemma deve continuare a cadere nella casella 4 fino a quando non rilascio uno dei due pulsanti.
Ok...allora vedo di mantenere la situazione com'è per la situazione b) e correggo la situazione a)...
cionci è offline  
Old 13-12-2005, 09:58   #16
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
Mi prendo 2 giorni di tempo...

L'acceptance test list sarà come segue:

- se un tasto freccia è premuto continuamente e premo il tasto freccia opposta la gemma deve stare ferma

- se due tasti freccia vengono premuti due tasti freccia e la pressione risulta a cavallo fra due aggiornamenti la gemma deve tornare alla posizione iniziale (quindi mantennedo la condizione attuale)

Ultima modifica di cionci : 13-12-2005 alle 11:37.
cionci è offline  
Old 13-12-2005, 11:37   #17
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
Test list per il task Xmas.1.3:
Codice:
    public void testLeftAndRightBothPressed()
    {
        grid.insertGem(2, 4, gem);
        grid.setGemUnderControl(gem);
        input.generateKey(KeyCode.vk_Left);
        input.generateKey(KeyCode.vk_Right);
        grid.reactToInput(input, timer);
        assertTrue("Gem may not move when Left & Right key are both pressed",
            grid.isGemAt(2, 4));
    }


    public void testLeftAndRightSequenceInTwoPollings()
    {
        grid.insertGem(2, 4, gem);
        grid.setGemUnderControl(gem);
        input.generateKey(KeyCode.vk_Left, timer.getTime());
        grid.reactToInput(input, timer);
        timer.advance(grid.getRepeatDelay() - 1);
        input.generateKey(KeyCode.vk_Right, timer.getTime());
        grid.reactToInput(input, timer);
        assertTrue("Gem may not move when Left & Right key are both pressed",
            grid.isGemAt(2, 4));
    }
    
    
    public void testLeftStillPressedAndRightPressed()
    {
        grid.insertGem(2, 4, gem);
        grid.setGemUnderControl(gem);
        input.generateKey(KeyCode.vk_Left, timer.getTime());
        grid.reactToInput(input, timer);
        timer.advance(grid.getRepeatDelay() + 1);
        input.generateKey(KeyCode.vk_Right, timer.getTime());
        grid.reactToInput(input, timer);
        assertTrue("Gem may not move when Left key is repeated & Right key is pressed",
            grid.isGemAt(2, 3));
        
    }
    
    
    public void testRightStillPressedAndLeftPressed()
    {
        grid.insertGem(2, 4, gem);
        grid.setGemUnderControl(gem);
        input.generateKey(KeyCode.vk_Right, timer.getTime());
        grid.reactToInput(input, timer);
        timer.advance(grid.getRepeatDelay() + 1);
        input.generateKey(KeyCode.vk_Left, timer.getTime());
        grid.reactToInput(input, timer);
        assertTrue("Gem may not move when Right key is repeated & Left key is pressed",
            grid.isGemAt(2, 5));        
    }
cionci è offline  
Old 13-12-2005, 12:04   #18
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Ma vi state mangiando quattro task al giorno voi? E' cosi' che mi piace, duri, cattivi e produttivi.

E per premiarvi, vi diamo altri task di Natale
fek è offline  
Old 13-12-2005, 13:33   #19
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
Fatto il commit del task Xmas.1.3
cionci è offline  
Old 13-12-2005, 14:00   #20
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Siete delle belve.

ciao
VICIUS è offline  
 Discussione Chiusa


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Nikon Comedy Wildlife 2025: le immagini ...
Il telescopio spaziale James Webb ha cat...
Tesla Roadster? Il re di ChatGPT chiede ...
Pier Giorgio Furcas raddoppia: Vice Dire...
Novità PagoPA: con Klarna:pagamen...
Per il 2026 la Cina eseguirà una ...
AMD mette in naftalina RDNA 1 ed RDNA 2?...
Blue Origin New Glenn: completato lo sta...
SpaceX risponde alla NASA sul lander lun...
Bitcoin compie 17 anni: il Whitepaper ch...
Attenzione agli HDD Western Digital Blue...
MacBook Air M4 a un super prezzo su Amaz...
Dal 12 novembre stretta sui siti porno: ...
Recensione Synology DS725+: tornano i di...
Car of the Year 2026, rivelate le 7 fina...
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: 02:08.


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