Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
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
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 16-09-2005, 16:12   #1
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
[CICLO 1] Storie e divisione in task

Nel Ciclo 1 implementeremo due storie.

Storia 1: Il gioco deve disegnare un diamante su uno sfondo nero in finestra o a pieno schermo e riprodurre un suono.

Storia 2: Un sistema di build automatico che gira sul server, scarica l'ultima versione del codice disponibile dal repository e riporta via mail in caso di errori di compilazione o testing.

La Storia 1 e' il vero inizio del progetto. La Storia 2 e' una storia cosiddetta "tecnica", di servizio, che ci servira' per supportare il resto del progetto.

Storia 1. Suddisivisione in task.

T1_1. Aprire una finestra di dimensione fissa (800x600 pixel di client area) [cidimauro 1 giorno COMPLETATO] (-2) +4
T1_2. Inizializzare OpenGL per il disegno 2D e colorare la finestra di nero via OpenGL [TigerShark 2 giorni COMPLETATO] +4
T1_3. Inizializare OpenAL [cisc 1 giorno] COMPLETATO +2
T1_4. Caricare l'immagine del diamante in una texture [Vifani 1 giorno] COMPLETATO +2
T1_5. Disegnare la texture del diamante applicata a due poligoni che formano un quadrato in coordinate schermo nel centro della finestra [Vifani 2 giorni] COMPLETATO +2
T1_6. Caricare un suono e riprodurlo [cisc 1 giorno] COMPLETATO (-2 + 3)

T1_7. Disegnare una texture 64x64 con un diamante [Antares 1 giorno] COMPLETATO

Storia 2. Suddivisione in task a seguire.

Il Ciclo 1 inizia Lunedi' 19 Settembre e si conclude Venerdi' 30 Settembre.

Sta a voi dichiarare su quali task volete lavorare. Quando avete scelto, date anche una stima in giorni da sostituire alla mia.

Ultima modifica di fek : 23-09-2005 alle 10:20.
fek è offline  
Old 16-09-2005, 18:39   #2
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
ma ci possiamo prenota re da ora?
no perchè io farei T1_3
(ke tra l'altro mi sfugge perkè è messa prima di T1_2 )
__________________
^TiGeRShArK^ è offline  
Old 16-09-2005, 19:15   #3
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da ^TiGeRShArK^
ma ci possiamo prenota re da ora?
no perchè io farei T1_3
(ke tra l'altro mi sfugge perkè è messa prima di T1_2 )
Per un errore che ho appena corretto

Si', ci si puo' prenotare fin da ora. Dimmi il task che vuoi fare e la tua stima di tempo.
fek è offline  
Old 16-09-2005, 20:56   #4
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112

l'ho detto prima quale volevo fare...
Inizializzare OpenGL per il disegno 2D e colorare la finestra di nero via OpenGL
perchè mi interessa e SOPRATTUTTO non penso sia difficilissimo....visto che non ho tanto tempo e devo farmi pure lo spike di jogl sotto win.....
come stima...boh...
penso che vada bene due giorni dato che il primo giorno cmq è in sovrapposizione con lo spike e al lavoro sono messo maluccio in quei giorni.....
spero di farcela!















Altrimenti mi aspetta la fustigazione e il pubblico ludibrio mi sa!
__________________
^TiGeRShArK^ è offline  
Old 17-09-2005, 10:33   #5
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Aggiornato.
Vi faccio una piccola richiesta per alleggerire le discussioni
Abbiamo tutti altri impegni e soprattutto questo non e' il nostro impegno principale. Quindi diamo per sottointeso e non scriviamo neanche che abbiamo altri impegni e siamo incasinati con altro.

Ma teniamone conto quando diamo le stime: "In questo periodo ho molto da fare, normalmente impiegherei un giorno, ma visto gli impegni posso finirlo in 3 giorni".

L'importante e' che le stime siano accurate e possibilmente sempre in eccesso. In altre parole, se mi dite che fate un task in 3 giorni, fate il commit (PULITO) in 3 giorni, perche' passato il tempo, e' facile che venga riassegnato.
Questo per prevenire stalli nel lavoro attendendo che qualcuno magari troppo impegnato non riesca a concludere il suo task.

Ultima cosa: tengo traccia in un mio db delle vostre previsioni e del tempo che impiegate, per avere dati su cui calcolare la nostra "Velocita'". Non mi interessa che la velocita' sia alta, mi interessa che sia costante e sostenibile.

Vi teniamo d'occhio

Ultima modifica di fek : 17-09-2005 alle 10:36.
fek è offline  
Old 17-09-2005, 14:04   #6
cisc
Senior Member
 
L'Avatar di cisc
 
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
vorrei prenotarmi per il T1_3, stima 1 giorno
__________________
GNU MyServer Wants YOU!!
We live thinking we will never die. We die thinking we had never lived. Jason Becker
cisc è offline  
Old 17-09-2005, 23:22   #7
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
Io vorrei prenotarmi per T1_4 e T1_5. Tempo stimato 2 giorni per la consegna di entrambi a partire da quando sarà definito il binding.
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline  
Old 18-09-2005, 14:32   #8
Antares88
Senior Member
 
L'Avatar di Antares88
 
Iscritto dal: Jan 2003
Città: Roma
Messaggi: 832
Fek, ho fatto una prova per la texture del diamante come mi hai chiesto su msn. Eccola con sfondo trasparente:



Ed eccola con sfondo nero:





Può andare ?
__________________
Trattative concluse su mercatino: The_Saint, ewandeep, Wiltord, maurizioi, Compulsion, mauryxxx76
Antares88 è offline  
Old 18-09-2005, 14:47   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
difficile, quell'immagine ha anche un canale alpha... suppongo che sia PNG (che altro potrei aspettarmi da te anta, che ti conosco bene )
come faremo a caricarla nel gioco? dobbiamo interpretare il formato PNG oppure esistono le libpng anche per Java? :|

edit: e invece no, era jpeg!!
71104 è offline  
Old 18-09-2005, 15:02   #10
Antares88
Senior Member
 
L'Avatar di Antares88
 
Iscritto dal: Jan 2003
Città: Roma
Messaggi: 832
quella con sfondo trasparente è png (ma dovrebbe venire bene anche in gif con trasparenza attiva), mentre quella su sfondo nero è in jpg.
__________________
Trattative concluse su mercatino: The_Saint, ewandeep, Wiltord, maurizioi, Compulsion, mauryxxx76
Antares88 è offline  
Old 18-09-2005, 15:15   #11
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
La definizione delle API da utilizzare è ancora un punto interrogativo. Sto aspettando di trovare fek online per discuterne.
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline  
Old 18-09-2005, 17:36   #12
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Ragazzi, usiamo questo thread solo per prenotarsi per i task per cortesia.
fek è offline  
Old 19-09-2005, 01:10   #13
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
Task 1.4 e 1.5 completati. Attendo i test da eseguire
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline  
Old 19-09-2005, 08:49   #14
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112

ma alla fine cosa dobbiamo usare?
JOGL o LWGJL?
mi sa che me lo sono perso....
__________________
^TiGeRShArK^ è offline  
Old 19-09-2005, 08:53   #15
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da ^TiGeRShArK^

ma alla fine cosa dobbiamo usare?
JOGL o LWGJL?
mi sa che me lo sono perso....
LWGJL.

SU forza ragasuoli che il povero Vifani ha fatto 3/4 del lavoro. A guardare il codice ha fatto ben oltre i soli 1.4 e 1.5

ciao
VICIUS è offline  
Old 19-09-2005, 09:08   #16
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Abbiamo scelto LWGL e le librerie sono nel repository. Partite pure con i vostri task.

Ricordate che il codice e' responsabilita' di tutti. Significa che non dovete chiedere il permesso di scrivere nel codice degl'altri, che se qualcun altro ha gia' scritto il vostro task, potete guardare il codice che ha scritto e cercare di semplificarlo. Siete incoraggiati a scorrere il codice degl'altri e farne refactoring, semplificandolo ed eliminando le duplicazioni.

Ultima cosa:
Un task non e' completato fino a che i test relativi non passano.

E se non ho scritto neppure un test per un task? Allora non e' completato e non ne faccio il sign off.

Per i primi cicli vi scrivo io qualche test obbligatorio per i vari task (fra stamattina e oggi pomeriggio). I test che scrivo non sono i soli che dovete far passare, siete altamente incoraggiati a scriverne altri. Siete molto incoraggiati a scriverli ancora prima di scrivere il codice e farvi una test list, che magari potete postare per i primi tempi, cosi' da scambiarci consigli.
fek è offline  
Old 19-09-2005, 11:45   #17
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Vi scrivo qui itest da implementare e far passare obbligatoriamente per ogni task.

Task 1

Codice:
void testEngineCreation()
{
  Engine engine = new Engine(800, 600);
  
  assertTrue(engine.IsCreated(), "Engine has not been created correctly");
}

void testDisplaySize()
{
  Engine engine = new Engine(800, 600);

  assertAreEqual(800, engine.getDisplayWidth(), "Display width must be 800");
  assertAreEqual(600, engine.getDisplayHeight(), "Display height must be 600");
}

void testEngineShutdown()
{
  Engine engine = new Engine(800, 600);

  engine.shutDown();
  assertTrue(engine.IsCreated(), "Engine has not shut down correctly");
}
Task 2

Da definire.

Task 3

Codice:
void testAudioCreation()
{
  Audio audio = new Audio();
  
  assertTrue(audio.IsInitialised(), "Audio has not been initialised correctly");
}

void testAudioShutdown()
{
  Audio audio = new Audio();

  engine.shutDown();
  assertTrue(audio.IsCreated(), "Audio has not shut down correctly");
}
Task 4

Codice:
void testLoadDiamondTexture()
{
  Texture texture = new Texture("diamond");

  assertTrue(texture.isLoaded(), "texture has not been loaded");
}

void testSize()
{
  Texture texture = new Texture("diamond");

  assertEqual(64, texture.getWidth(), "texture width is wrong");
  assertEqual(64, texture.getHeight(), "texture width is wrong");
}

void testLoadFailed()
{
  try
  {
     Texture texture = new Texture("this_texture_doesnt_exist");
  }
  catch (TextureNotFoundException)
  {
     return;
  }

  assertFail();
}
Task 5

Qui serve un mock, ma primo devo dirvi che cos'e' un mock. Scrivo i test in seguito.

Task 6

Codice:
void testSound()
{
  Sound sound = new Sound("diamond");

  assertTrue(sound.isLoaded(), "sound has not been loaded");
}

void testLoadSoundFailed()
{
  try
  {
     Sound sound = new sound("this_sound_doesnt_exist");
  }
  catch (TextureNotFoundException)
  {
     return;
  }

  assertFail();
}

void testPlaySound()
{
  Sound sound = new Sound("diamond");

  sound.play();

  assertTrue(sound.isPlayed(), "sound has not been played");
}
Anche testPlaySound() andrebbe implementato con un mock object. Cosi' non e' molto utile e non vogliamo che i test riproducano effettivamente il suono ogni volta che sono eseguiti. Vedremo in seguito come risolvere il problema.

Non ho compilato i test, ci saranno sicuramente errori di sintassi e magari non sara' proprio Java, ma servono per darvi l'idea dei test che ho bisogno che implementiate.

Ricordate:
Il task non e' completo se questi test non passano.

Implementate solo il codice che serve per far passare questi test. Siete caldamente invitati a scrivere altri test che servano per testare il codice che state scrivendo per far passare questi test.
I nomi delle classi che uso nei test e' "abbastanza" obbligatorio. E' un esempio di come vi dettero' l'architettura del gioco attraverso i test e non attraverso un documento.
Se vedete duplicazioni nei test (e ci sono), siete invitati ad eliminarle usando le feature di JUnit.

Infine, questi test lasciano dei buchi, come il clear dello schermo. Alcune cose non sono facili da testare automaticamente, soprattutto quando c'e' di mezzo la presentazione a video. Vedremo in seguito come possiamo risolvere anche questo problema. Per ora abbiamo qualche test e qualche test e' sempre meglio di nessun test.

Ultima modifica di fek : 19-09-2005 alle 12:17.
fek è offline  
Old 19-09-2005, 13:30   #18
Vifani
Senior Member
 
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
Quote:
Originariamente inviato da fek
Vi scrivo qui itest da implementare e far passare obbligatoriamente per ogni task.
Task 4

Codice:
void testLoadDiamondTexture()
{
  Texture texture = new Texture("diamond");

  assertTrue(texture.isLoaded(), "texture has not been loaded");
}

void testSize()
{
  Texture texture = new Texture("diamond");

  assertEqual(64, texture.getWidth(), "texture width is wrong");
  assertEqual(64, texture.getHeight(), "texture width is wrong");
}

void testLoadFailed()
{
  try
  {
     Texture texture = new Texture("this_texture_doesnt_exist");
  }
  catch (TextureNotFoundException)
  {
     return;
  }

  assertFail();
}
fek non mi è chiara una cosa. La stringa che passi al costruttore, dovrebbe essere il nome del file? No perché in tal caso bisogna specificare l'estensione e se così non fosse, cosa rappresenta quella stringa?
__________________
Raffaele Fanizzi
My Personal Web Site
Membro Jedi del HWU Star Wars Clan
Vifani è offline  
Old 19-09-2005, 15:00   #19
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Vifani
fek non mi è chiara una cosa. La stringa che passi al costruttore, dovrebbe essere il nome del file? No perché in tal caso bisogna specificare l'estensione e se così non fosse, cosa rappresenta quella stringa?
Bella domanda.
E' il nome della texture. Queste sono una parte delle specifiche. L'altra specifica e' sottintesa nel fatto che c'e' un file di nome diamonds.png (mi sembra png) nel folder bin/data.
Il resto del test ti dice che quando io chiedo diamonds devi dire che l'hai trovato, quando ti chiedo una texture che nel folder sottointeso non c'e', tu devi darmi l'eccezione.
Sei libero di aggiungere altri testi per chiarire meglio le mie specifiche e renderle piu' coerenti, magari aggiungendo un test che affermi che il folder in cui devi guardare sia bin/data.
In sintesi, prova a scrivere il codice piu' semplice che ti viene in mente, date le specifiche, che fa passare quel test esattamente come e' scritto.
cionci, puoi splittare il mio post e quello di Raffaele in un topic "Chiarimenti sul Task 4 Ciclo 1" per cortesia?

Ultima modifica di fek : 19-09-2005 alle 15:03.
fek è offline  
Old 19-09-2005, 18:01   #20
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Ho aggiunto i test di questo ciclo alla cartella src/it/diamonds/tests/ignore.
Spostateli nella cartella src/it/diamonds/tests e poi implementate il codice per farli passare.

Ricordate di spostare i test altrimenti verranno ignorati dalla build automatica.
fek è offline  
 Discussione Chiusa


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
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...
Due scope elettriche TINECO a prezzi int...
Gemini Intelligence si prepara a espande...
Questi scarafaggi cyborg possono inietta...
iPhone 17 è lo smartphone più vendute ne...
Portatile tuttofare HP con Intel Core Ul...
SK Hynix posa la prima pietra in Indiana...
L'AI di Anthropic ora comanda microscopi...
DJI Osmo 360 Adventure Combo è sc...
DLSS 5, i modder lo fanno funzionare pri...
Non solo rincari per Apple: il panno per...
Google Pixel 11 256GB, c'è gi&agr...
Anthropic e Salesforce annunciano l'inte...
Ricoh GR IVx: annunciata la compatta da ...
I consumatori non sarebbero interessati ...
Cybersecurity: come si sono mossi gli AP...
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: 08:17.


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