Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità
NUC 15 Pro e NUC 15 Pro+ sono i due nuovi mini-PC di casa ASUS pensati per uffici e piccole medie imprese. Compatti, potenti e pieni di porte per la massima flessibilità, le due proposte rispondono in pieno alle esigenze attuali e future grazie a una CPU con grafica integrata, accompagnata da una NPU per la gestione di alcuni compiti AI in locale.
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint
Dal palco di Proofpoint Protect 2025 emerge la strategia per estendere la protezione dagli utenti agli agenti IA con il lancio di Satori Agents, nuove soluzioni di governance dei dati e partnership rafforzate che ridisegnano il panorama della cybersecurity
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti
Dopo alcuni anni di assenza dai cataloghi dei suoi televisori, Hisense riporta sul mercato una proposta OLED che punta tutto sul rapporto qualità prezzo. Hisense 55A85N è un televisore completo e versatile che riesce a convincere anche senza raggiungere le vette di televisori di altra fascia (e altro prezzo)
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 23-09-2005, 20: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 11:23.
VICIUS è offline  
Old 23-09-2005, 20: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, 20: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 18:38.
fek è offline  
Old 24-09-2005, 07: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, 09: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, 11: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, 12: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, 12: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, 12: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, 12: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, 10: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, 10: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, 10: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, 10: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, 11: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, 11: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, 12: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, 12: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, 12: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, 14: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


ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondono completezza e duttilità ASUS NUC 15 Pro e NUC 15 Pro+, mini PC che fondo...
Cybersecurity: email, utenti e agenti IA, la nuova visione di Proofpoint Cybersecurity: email, utenti e agenti IA, la nuo...
Hisense A85N: il ritorno all’OLED è convincente e alla portata di tutti Hisense A85N: il ritorno all’OLED è convi...
Recensione Borderlands 4, tra divertimento e problemi tecnici Recensione Borderlands 4, tra divertimento e pro...
TCL NXTPAPER 60 Ultra: lo smartphone che trasforma la lettura da digitale a naturale TCL NXTPAPER 60 Ultra: lo smartphone che trasfor...
Meta spinge sull'indipendenza da NVIDIA:...
Spotify rivoluziona la sua guida: Daniel...
Sora 2: la seconda generazione del model...
Nuovo obiettivo FE 100mm F2.8 Macro GM O...
Steelseries Arctis Nova Elite: le prime ...
30 anni di PlayStation da indossare: arr...
Amazon lancia gli Echo più potent...
Amazon rinnova la gamma Fire TV: ecco le...
Ring lancia le sue prime videocamere con...
Blink amplia la gamma di videocamere di ...
Jaguar Land Rover riprende (gradualmente...
HONOR inaugura il primo ALPHA Flagship S...
Yamaha: ecco il brevetto del 'finto moto...
'Console obsoleta e utenti ingannati': u...
Stop al ransomware su Google Drive, graz...
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: 01:41.


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