Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 23-09-2005, 21:04   #1
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
[CICLO 1] Storia 2: Divisione in Task

Ecco la nuova storiella e i task da implementare.

Storia:
Una volta aperta la finestra del gioco deve essere possibile spostare il
diamante al suo interno usando le frecce direzionali della tastiera. Durante
gli spostamenti il diamante deve "pulsare" cioè ingrandirsi e rimpicciolirsi
di qualche millimetro. Quando il diamante tocca un bordo il movimento deve
fermarsi e il gioco riprodurre un suono.

Task:
2.1 Permettere al diamante di essere posizionato in un punto qualsiasi dello schermo. (Vifani: completato)
2.2 Spostare il diamante nelle quattro direzioni di X pixel. (Vifani: completato)
2.3 Intercettare la pressione delle frecce direzionali e spostare il diamante. (cdimauro: 2 giorni)
2.4 Rilevare la "collisione" con i bordi dello finestra e impedire lo spostamento. (DanieleC88: 2 giorni)
2.5 Riprodurre il suono quando il diamante collide con un bordo. (BlueDragon: da definire)
2.6 Permettere al diamante di pulsare durante lo spostamento. (VICIUS: 2 giorni)

Il ciclo comincia lunedi mattina alle 8. Siate puntuali e ricordatevi di timbrare il cartellino

ciao

Ultima modifica di VICIUS : 27-09-2005 alle 12:23.
VICIUS è offline  
Old 23-09-2005, 21:41   #2
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
Task 2.1 e 2.2 prenotati. Prevedo un paio di giorni per tutti e due
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline  
Old 23-09-2005, 21:42   #3
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Vi ricordo che questi sono i test "obbligatori" per concludere il task, ma siete caldamente invitati ad aggiungere tutti i test necessari.

Come sempre trovate i test in it.diamonds.tests.ignore e dovete spostarli in it.diamonds.tests.

2.1 Permettere al diamante di essere posizionato in un punto qualsiasi dello schermo. (Vifani: 2 giorni)

2.2 Spostare il diamante nelle quattro direzioni di X pixel. (Vifani: 2 giorni)

Codice:
public class TestSprite extends TestCase
{
    protected void setUp() throws Exception
    {
        super.setUp();
    }

    protected void tearDown() throws Exception
    {
        super.tearDown();
    }
    
    public void testGetTexture()
    {
        Texture texture = new Texture("diamond");
        Sprite sprite = new Sprite(100, 200, texture);
        
        assertAreSame(texture, sprite.getTexture());   
    }
    
    public void testGetPosition()
    {
        Texture texture = new Texture("diamond");
        Sprite sprite = new Sprite(100, 200, texture);
        
        assertAreEqual(100, sprite.getX());
        assertAreEqual(200, sprite.getY());   
    }
    
    public void testMove()
    {
        Texture texture = new Texture("diamond");
        Sprite sprite = new Sprite(100, 200, texture);
        
        sprite.Move(10, 20);
        
        assertAreEqual(110, sprite.getX());
        assertAreEqual(220, sprite.getY());
        
        sprite.Move(-10, -20);
        
        assertAreEqual(90, sprite.getX());
        assertAreEqual(180, sprite.getY());   
    }
 }
2.3 Intercettare la pressione delle frecce direzionali e spostare il diamante. (cdimauro: 2 giorni)

Input da tastiera. Va testato manualmente.

2.4 Rilevare la "collisione" con i bordi dello finestra e impedire lo spostamento. (DanieleC88: 2 giorni)

Codice:
public class testSpriteCollision extends TestCase
{
    protected void setUp() throws Exception
    {
        super.setUp();
    }

    protected void tearDown() throws Exception
    {
        super.tearDown();
    }

    public void testLeftCollision()
    {
        // no texture
        Sprite sprite = new Sprite(5, 0);
        sprite.Move(-10, 0);
        assertAreEqual(0, sprite.getX());        
    }
    
    public void testRightCollision()
    {
        int width = 800;
        Sprite sprite = new Sprite(width - 5, 0);
        sprite.Move(10, 0);
        assertAreEqual(width, sprite.getX());        
    }
    
    public void testTopCollision()
    {
        // no texture
        Sprite sprite = new Sprite(0, 5);
        sprite.Move(0, -10);
        assertAreEqual(0, sprite.getY());        
    }
    
    public void testBottomCollision()
    {
        int height = 600;
        Sprite sprite = new Sprite(height - 5, 0);
        sprite.Move(0, 10);
        assertAreEqual(height, sprite.getY());        
    } 

}

2.5 Riprodurre il suono quando il diamante collide con un bordo.

Codice:
public class TestSpriteCollisionSound extends TestCase
{

    protected void setUp() throws Exception
    {
        super.setUp();
    }
    
    protected void tearDown() throws Exception
    {
        super.tearDown();
    }
    
    public void testCollisionSound()
    {
        Sprite sprite = new Sprite(0, 0);
        
        Sound sound = new Sound("diamond");

        // TODO: use a MockObject
        sound.setTesting(true);
        
        assertFalse("Sound must not be played before a collision",
            sound.wasPlayed());
        
        sprite.setCollisionSound(sound);
        sprite.Move(-10, 0);

        assertFalse("Sound must be played after a collision",
            sound.wasPlayed());
    }
    
}
2.6 Permettere al diamante di pulsare durante lo spostamento.

Vicius?

Ultima modifica di fek : 25-09-2005 alle 19:38.
fek è offline  
Old 24-09-2005, 08:53   #4
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Task 2.3 pronotato. Prevedo due giorni per realizzarlo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline  
Old 24-09-2005, 10:36   #5
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Vorrei che i restanti task fossero prenotati da qualcuno che non ha partecipato alla Storia precedente.
fek è offline  
Old 24-09-2005, 12:46   #6
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da fek
Vorrei che i restanti task fossero prenotati da qualcuno che non ha partecipato alla Storia precedente.
Esatto. Dove sono finiti tutti quei volenterosi collaboratori che si erano offerti nell'altro thread

ciao
VICIUS è offline  
Old 24-09-2005, 13:16   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
pazientate altri 3 giorni e ne avrete un altro ^^
comunque vorrei chiedere un chiarimento sul task 2.6: il diamante deve pulsare sempre o solo quando si muove? nel gioco finale il diamante una volta che è arrivato a terra (o sopra un altro diamante sottostante) deve smettere di pulsare?
71104 è offline  
Old 24-09-2005, 13:21   #8
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da 71104
pazientate altri 3 giorni e ne avrete un altro ^^
comunque vorrei chiedere un chiarimento sul task 2.6: il diamante deve pulsare sempre o solo quando si muove? nel gioco finale il diamante una volta che è arrivato a terra (o sopra un altro diamante sottostante) deve smettere di pulsare?
Deve pulsare solo quando si muove. Non centra niente con il gioco. L'ho messo solo per vedere come risolvete e se fate una cosa

ciao
VICIUS è offline  
Old 24-09-2005, 13:32   #9
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da fek
Vorrei che i restanti task fossero prenotati da qualcuno che non ha partecipato alla Storia precedente.
È libero il 2.4 (collisioni coi bordi della finestra)?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline  
Old 24-09-2005, 13:34   #10
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da DanieleC88
È libero il 2.4 (collisioni coi bordi della finestra)?
Per ora si.

ciao
VICIUS è offline  
Old 26-09-2005, 11:06   #11
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da fek
2.3 Intercettare la pressione delle frecce direzionali e spostare il diamante. (cdimauro: 2 giorni)

Input da tastiera. Va testato manualmente.
Ma tu guarda che "fortuna": l'unico senza test da scrivere...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline  
Old 26-09-2005, 11:08   #12
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cdimauro
Ma tu guarda che "fortuna": l'unico senza test da scrivere...
Ehm, no, l'unico senza acceptance test
I test li scrivi comunque...
fek è offline  
Old 26-09-2005, 11:39   #13
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da VICIUS
2.5 Riprodurre il suono quando il diamante collide con un bordo.
Manca questo task da assegnare. Volontario?

Oppure scelgo io il volontario e facciamo il task assieme in TDD in diretta in un topic
fek è offline  
Old 26-09-2005, 11:59   #14
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da fek
Ehm, no, l'unico senza acceptance test
I test li scrivi comunque...
Oops.

Mi vengono in mente soltanto 4 test per controllare se lo spostamento del diamante (a seguito della pressione di una delle frecce) è avvenuto regolarmente.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline  
Old 26-09-2005, 12:20   #15
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da cdimauro
Oops.

Mi vengono in mente soltanto 4 test per controllare se lo spostamento del diamante (a seguito della pressione di una delle frecce) è avvenuto regolarmente.
Per lo spostamento del diamante ci sono gia' i test. Pero' puoi fare una cosa, puoi "virtualizzare" l'input vero e proprio della tastiera e poi scrivere un MockKeyboard che fa finta di essere una tastiera e scrivere codice di test tipo:

keyboard.notifyLeftArrow();

dall'altra parte keyboard.isLeftArrowPressed() tornera' 'true'.

In questo modo possiamo scrivere dei test che controllano che il diamante si sia effettivamente spostato quando la tastiera notifica la pressione della freccia a sinistra.

Il finale di tutto questo lavoro sono i cosiddetti "Customer Test", test scritti in un linguaggio ad alto livello che simulano il gioco vero e proprio. Ma non so se arriveremo mai a questo.
fek è offline  
Old 26-09-2005, 12:39   #16
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da fek
Manca questo task da assegnare. Volontario?

Oppure scelgo io il volontario e facciamo il task assieme in TDD in diretta in un topic
Propongo volontario Daniele per questo task. Una volta che ha capito come rilevare la collisioni far partire un suono è banale

ciao
VICIUS è offline  
Old 26-09-2005, 13:47   #17
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da VICIUS
Propongo volontario Daniele per questo task. Una volta che ha capito come rilevare la collisioni far partire un suono è banale

ciao
Preferirei che qualcuno che non ha ancora fatto un task si prendesse quest'ultimo, ma in mancanza di volontari, se Daniele vuole e' ok.
fek è offline  
Old 26-09-2005, 13:49   #18
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da VICIUS
Propongo volontario Daniele per questo task. Una volta che ha capito come rilevare la collisioni far partire un suono è banale

ciao
Che fai, decidi per me, ora?
Ma scherzo, hai ragione tu. Ci vorranno 5 minuti. (spero )
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline  
Old 26-09-2005, 13:52   #19
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da DanieleC88
Che fai, decidi per me, ora?
Ma scherzo, hai ragione tu. Ci vorranno 5 minuti. (spero )
Non ci vogliono 5 minuti, non e' cosi' banale. Guarda i test che ho scritto per i tuoi due task, ci sono delle duplicazioni grosse come delle case e non sono banali da eliminare.

Oltre tutto il test del suono dopo una collisione apre le porte ad un paio di interrogativi non banali (gestione degli eventi associati ad uno sprite?) e dev'essere affrontato con molta cura.
fek è offline  
Old 26-09-2005, 15:55   #20
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Quote:
Originariamente inviato da fek
Non ci vogliono 5 minuti, non e' cosi' banale. Guarda i test che ho scritto per i tuoi due task, ci sono delle duplicazioni grosse come delle case e non sono banali da eliminare.

Oltre tutto il test del suono dopo una collisione apre le porte ad un paio di interrogativi non banali (gestione degli eventi associati ad uno sprite?) e dev'essere affrontato con molta cura.
Argh, non ci avevo pensato... be', che dire? Se c'è chi si offre volontario, ben venga, altrimenti ci provo io. In caso di difficoltà posso sempre consultarmi con voi. E soprattuto con VICIUS, ché lo vedo molto volontario oggi.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline  
 Discussione Chiusa


Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Ford: l'elettrico genera una perdita di ...
Ayaneo Next 2: la console portatile Wind...
Il WiFi può vederti senza telecam...
Linux sotto assedio: SSHStalker riporta ...
Stellantis: dopo il crollo di venerd&igr...
Combat Liquid 360 HUD: raffreddamento AI...
Tornano le EVO Sessions della Formula E:...
Moltbook, il social network per AI: i po...
Cina: eseguito il test della navicella M...
Mistral, il rivale europeo di OpenAI, in...
Libri piratati, allarme rosso: 722 milio...
Ayaneo svela quasi tutte le specifiche d...
Sony chiude definitivamente con i regist...
Renault Twingo E-Tech Electric sotto i 2...
Auto elettriche, il freddo non fa pi&ugr...
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: 23:19.


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