Torna indietro   Hardware Upgrade Forum > Software > Programmazione

iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile
C'è tanta sostanza nel nuovo smartphone della Mela dedicato ai creator digitali. Nuovo telaio in alluminio, sistema di raffreddamento vapor chamber e tre fotocamere da 48 megapixel: non è un semplice smartphone, ma uno studio di produzione digitale on-the-go
Intel Panther Lake: i processori per i notebook del 2026
Intel Panther Lake: i processori per i notebook del 2026
Panther Lake è il nome in codice della prossima generazione di processori Intel Core Ultra, che vedremo al debutto da inizio 2026 nei notebook e nei sistemi desktop più compatti. Nuovi core, nuove GPU e soprattutto una struttura a tile che vede per la prima volta l'utilizzo della tecnologia produttiva Intel 18A: tanta potenza in più, ma senza perdere in efficienza
Intel Xeon 6+: è tempo di Clearwater Forest
Intel Xeon 6+: è tempo di Clearwater Forest
Intel ha annunciato la prossima generazione di processori Xeon dotati di E-Core, quelli per la massima efficienza energetica e densità di elaborazione. Grazie al processo produttivo Intel 18A, i core passano a un massimo di 288 per ogni socket, con aumento della potenza di calcolo e dell'efficienza complessiva.
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


iPhone 17 Pro: più di uno smartphone. È uno studio di produzione in formato tascabile iPhone 17 Pro: più di uno smartphone. &Eg...
Intel Panther Lake: i processori per i notebook del 2026 Intel Panther Lake: i processori per i notebook ...
Intel Xeon 6+: è tempo di Clearwater Forest Intel Xeon 6+: è tempo di Clearwater Fore...
4K a 160Hz o Full HD a 320Hz? Titan Army P2712V, a un prezzo molto basso 4K a 160Hz o Full HD a 320Hz? Titan Army P2712V,...
Recensione Google Pixel Watch 4: basta sollevarlo e si ha Gemini sempre al polso Recensione Google Pixel Watch 4: basta sollevarl...
Nomad in missione senza alcun controllo ...
Apple prepara il chip H3 e nuovi AirPods...
Battlefield 6 è uno spettacolo an...
Hyundai Ioniq 9, prima prova: viaggiare ...
Allarme blackout in Spagna: la rete elet...
MindsEye, rivolta dei dipendenti contro ...
In Cina Xiaomi SU7 Ultra prende fuoco do...
Apple Smart Glass: display integrato e d...
Mortal Kombat 3 si farà: la confe...
iPhone 18 Pro: prime indiscrezioni sulle...
Vai all'università? Hai un anno d...
Rubrik accelera su IA e sicurezza: tra c...
Nuovo Nothing Phone (3) in offerta su Am...
Roborock Qrevo Edge in offerta su Amazon...
Polizia statunitense mette in guardia: s...
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: 13:07.


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