Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo
Plaud Note Pro è un registratore digitale elegante e tascabile con app integrata che semplifica trascrizioni e riepiloghi, offre funzioni avanzate come template e note intelligenti, ma resta vincolato a un piano a pagamento per chi ne fa un uso intensivo
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy?
Google Pixel 10 è uno smartphone che unisce una fotocamera molto più versatile rispetto al passato grazie allo zoom ottico 5x, il supporto magnetico Pixelsnap e il nuovo chip Tensor G5. Il dispositivo porta Android 16 e funzionalità AI avanzate come Camera Coach, mantenendo il design caratteristico della serie Pixel con miglioramenti nelle prestazioni e nell'autonomia. In Italia, però, mancano diverse feature peculiari basate sull'AI.
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre
L'abbonamento Ultimate di GeForce NOW ora comprende la nuova architettura Blackwell RTX con GPU RTX 5080 che garantisce prestazioni tre volte superiori alla precedente generazione. Non si tratta solo di velocità, ma di un'esperienza di gioco migliorata con nuove tecnologie di streaming e un catalogo giochi raddoppiato grazie alla funzione Install-to-Play
Tutti gli articoli Tutte le news

Vai al Forum
Discussione Chiusa
 
Strumenti
Old 29-05-2006, 14:05   #1
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
[CICLO 17] Storia 1

Storia di refactoring:
- Completare il refactoring di BigGem, uniformando le interfacce di Droppable e BigGem. Cell deve diventare una Region, ovvero un gruppo di celle rettangolari. Un diamante e' una Region 1x1: Bonfo + Ufo13
- Consolidare le responsabilita' di Dynamite al momento sparse in piu' classi: thebol + Jappilas + ...
- Testare il codice di input: cdimauro: completato

La storia è già divisa in task: fatevi sotto!
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.

Ultima modifica di VICIUS : 06-06-2006 alle 16:47.
Jocchan è offline  
Old 29-05-2006, 15:35   #2
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Siccome siamo in ballo...continuiamo a ballare.
Io e Ufo andiamo avanti con il refactoring di BigGem.
__________________
Software engineer
Bonfo's Blog
Bonfo è offline  
Old 29-05-2006, 22:42   #3
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da Bonfo
Siccome siamo in ballo...continuiamo a ballare.
Io e Ufo andiamo avanti con il refactoring di BigGem.
Una stima sul tempo necessario per completare il refactoring?

ciao
VICIUS è offline  
Old 29-05-2006, 22:46   #4
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Visto che ci siamo anche gli altri due task sarebbe meglio farli in pair. Quindi fatevi avanti.

Per il terzo task sarebbe utile rifattorizzare keymapping in modo da caricare i tasti da un file di configurazione come GameConfig (quindi uso della classe properties) in modo da poter cambiare i tasti agilmente e usare un file standard per i test.

ciao
VICIUS è offline  
Old 30-05-2006, 07:30   #5
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Per il terzo task ci potrei pensare io e qualcun altro. Tempo previsto: 2 giorni per rifattorizzare qualcosina e uno per aggiornare i test.

Un paio di domande:
- per la configurazione dei tasti posso usare sempre GameConfig oppure un altro file (o due: uno il mapping di ogni giocatore);
- con uso della classe properties cosa intendi?

Comunque la mia idea è di sganciare KeyMappings dalla particolare implementazione della tastiera, rendendola quindi un elemento a sé stante, facendo sì che la tastiera diventi un semplice dispositivo di input che trasli già al suo interno i codici "raw" della tastiera sui relativi Event "standard" di Diamonds, per poi notificare questo evento ai listener a essa legati.

Sarà poi la routine di notify del listener a traslare, tramite il keymapping che usa e relative impostazioni del file di configurazione, l'evento della pressione di un particolare tasto in quello di Event.UP, Event.DOWN, Event.BUTTON1, ecc.
cdimauro è offline  
Old 30-05-2006, 09:12   #6
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da cdimauro
Per il terzo task ci potrei pensare io e qualcun altro. Tempo previsto: 2 giorni per rifattorizzare qualcosina e uno per aggiornare i test.

Un paio di domande:
- per la configurazione dei tasti posso usare sempre GameConfig oppure un altro file (o due: uno il mapping di ogni giocatore);
Secondo me ci conviene usare un file separato. GameConfig in questo momento contiene proprietà che sicuramente non saranno modificabili dall'utente finale. Per il parsing potete usare sempre Config anche se probabilmente dovrete aggiungere una getString.

Quote:
Originariamente inviato da cdimauro
- con uso della classe properties cosa intendi?
Era solo per evitare di ritrovarmi con un file .xml nel repository

ciao
VICIUS è offline  
Old 30-05-2006, 09:45   #7
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da VICIUS
Secondo me ci conviene usare un file separato. GameConfig in questo momento contiene proprietà che sicuramente non saranno modificabili dall'utente finale. Per il parsing potete usare sempre Config anche se probabilmente dovrete aggiungere una getString.
Anche secondo me andrebbe usato un file differente e la classe Config per leggerlo.
fek è offline  
Old 30-05-2006, 10:44   #8
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da VICIUS
Secondo me ci conviene usare un file separato. GameConfig in questo momento contiene proprietà che sicuramente non saranno modificabili dall'utente finale. Per il parsing potete usare sempre Config anche se probabilmente dovrete aggiungere una getString.
OK, quindi vada per un file contenente le configurazioni dei tasti di entrambi i giocatori
Quote:
Era solo per evitare di ritrovarmi con un file .xml nel repository
Ehm, scusa la mia ignoranza, ma non ho ancora capito cosa intendi per "uso della classe properties".

Oggi sono un po' intronato.

EDIT: Ho appena visto config e ho capito cosa volevi dire. Oggi non è proprio giornata.

Comunque ho già rifattorizzato un po' di roba, semplificando KeyboardInterface, eliminato KeyMappings e facendola diventare una classe a sé stante, che non dipende dall'implementazione della tastiera.

Inoltre la traslazione dell'evento (usando il mapping apposito) adesso avviene in notifyEvent. Di conseguenza cambia anche il modo di usare questo metodo.

A motivo di ciò, ho dovuto cambiare un bel po' di test che usavano input senza impostare alcun KeyMapping, oppure che passavano a notifyEvent direttamente l'evento processato (es: al posto di Event.LEFT adesso si deve passare Event.KEY_LEFT).

Ultima modifica di cdimauro : 30-05-2006 alle 11:09.
cdimauro è offline  
Old 30-05-2006, 11:10   #9
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
scrivendo un file di properties secondo lo standard prop = value, e facendolo parsare dalla classe java properties, ottieni un oggetto su cui facendo getProperties(prop) restitusice value.

cmq è utilizzata anche nella gestione del file di config(classe Config).
thebol è offline  
Old 30-05-2006, 11:39   #10
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Quote:
Originariamente inviato da VICIUS
Una stima sul tempo necessario per completare il refactoring?

ciao
Allora...adesso parlo senza aver sentito Ufo.
La situazione è "grave"...ovvero ogni volta che cerchiamo di mettere mano a qualcosa va ad impattare su gran parte del codice, richiedendo sempre la presenza di refactoring che non siamo ancora riusciti a fare.
Insomma ...una cane che si morde la coda

In ogni caso stiamo cercando i punti di attacco.
Se tutto va come prevediamo ci troveremo alla fine con il codice praticamente "nuovo".

Quindi i tempi sono lunghi...anche perchè biosgna mettere le mani in un sacco di posti (Grid, Action, State, tutti i Droppable, Sprite, Cell e via così...praticamente tutto )
__________________
Software engineer
Bonfo's Blog
Bonfo è offline  
Old 30-05-2006, 11:50   #11
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quote:
Originariamente inviato da Bonfo
Allora...adesso parlo senza aver sentito Ufo.
La situazione è "grave"...ovvero ogni volta che cerchiamo di mettere mano a qualcosa va ad impattare su gran parte del codice, richiedendo sempre la presenza di refactoring che non siamo ancora riusciti a fare.
Insomma ...una cane che si morde la coda

In ogni caso stiamo cercando i punti di attacco.
Se tutto va come prevediamo ci troveremo alla fine con il codice praticamente "nuovo".

Quindi i tempi sono lunghi...anche perchè biosgna mettere le mani in un sacco di posti (Grid, Action, State, tutti i Droppable, Sprite, Cell e via così...praticamente tutto )
Ok. Allora andate piano, scrivete un sacco di test e lanciate ant fino a consumare il tasto di eclipse
Se avete bisogno di consigli e idee nuove io sono sempre disponibile di sera.

ciao
VICIUS è offline  
Old 30-05-2006, 17:05   #12
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
esaminando il comportamento attuale (di fino a ieri sera, cioe' ) della dynamite, mi veniva un dubbio: attualmente il candelotto viene rimosso all' evento di BLOW.released ma la griglia aggiornata alla fine del "turno" (se il tasto viene rilasciato durante il gioco, statisticamente capitera' con maggiore probabilita' durante la caduta della gempair, quindi nel gemPairOnControlState)

il comportamento del cadelotto deve verificarsi (cancellazione + caduta della/e droppable che la sovrastano, per ora, animazione + cancellazione + caduta, nella storia successiva) appena si rilascia il tasto o si ha il timeout , anche se nel frattempo c e' una gempair in gioco che sta cadendo?

Forse bisognera' aggiungere allo stato il controllo e la gestione della dynamite, o uno stato apposito (la mai idea e' di trattare anche la dynamite analogamente al crushState per far cadere le droppable) parlandone con vic e' emerso che a seconda dei casi "potrebbe" rendersi necessario o consigliabile rivedere gli state, quindi e' necessario chiarire
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
jappilas è offline  
Old 30-05-2006, 18:16   #13
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da VICIUS
Ok. Allora andate piano, scrivete un sacco di test e lanciate ant fino a consumare il tasto di eclipse
Se avete bisogno di consigli e idee nuove io sono sempre disponibile di sera.

ciao
Ed e' proprio il fatto che toccando qualcosa si va ad inficiare molto codice il motivo per il quale e' assolutamente necessaria questa fase di refactoring. Cercate di mantenere ogni classe il piu' possibile coesa e indipendente dal resto del sistema: vi accorgete della coesione guardando i test della classe. Se i test non richiedono tanti altri oggetti per funzionare, vuol dire che la classe e' molto coesa ed e' un ottimo segno.

Forza ragazzi che il lavoro che state facendo e' importantissimo. Vedrete che appena iniziate a svolgere i primi nodi il resto del codice andra' a posto da solo. L'importante come dice Vic e' procedere passettino per passettino, e scrivere tanti test che vi proteggono dai problemi.
fek è offline  
Old 30-05-2006, 18:19   #14
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Un ultimo consiglio: fate commit spesso e volentieri, cosi' permettete agl'altri che lavorano di sincronizzarsi al refactoring, ed evitate noiosi merge.

Inoltre mettersi in testa di fare commit spesso vi aiuta a sforzarvi di rendere ogni passo del refactoring molto breve, quindi meno rischi di fare casini. E piu' tranquillita' per voi. E' una lotta
fek è offline  
Old 31-05-2006, 08:02   #15
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
'na parola. Con le grosse rifattorizzazioni che ho fatto mi succedeva spesso e volentieri che, dopo una modifica, saltavano fuori degli errori in altre classi. Corretto un errore, se ne saltava fuori un altro a esso legato, e così via, modello catena di Sant'Antonio.

Ho vissuto con l'incubo di effettuare merge chilometrici in questi momenti.

Per fortuna che modifiche così pesanti non si fanno tutti i giorni.
cdimauro è offline  
Old 31-05-2006, 10:31   #16
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Allora... Il refactoring di BigGem con Cell procede... Qualcuno riesce a darmi una mano?

Vi posto la BigGem refattorizzata, la build è rossa e non capisco perchè
Allegati
File Type: zip BigGem.zip (2.0 KB, 6 visite)
Ufo13 è offline  
Old 31-05-2006, 10:33   #17
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Per favore, NON committate in questo momento: ho per le mani una rifattorizzazione piuttosto pesante, e non vorrei che si creassero casini!!!
cdimauro è offline  
Old 31-05-2006, 11:01   #18
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Commit effettuato. Adesso Diamonds è event-based.
cdimauro è offline  
Old 31-05-2006, 11:19   #19
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Quote:
Originariamente inviato da Ufo13
Allora... Il refactoring di BigGem con Cell procede... Qualcuno riesce a darmi una mano?

Vi posto la BigGem refattorizzata, la build è rossa e non capisco perchè

Ho visto qualcosa di strano...perchp in addColumn e addRow le gem sono dichiarate FINAL ??
__________________
Software engineer
Bonfo's Blog
Bonfo è offline  
Old 31-05-2006, 11:36   #20
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Quote:
Originariamente inviato da Bonfo
Ho visto qualcosa di strano...perchp in addColumn e addRow le gem sono dichiarate FINAL ??
Non mi risulta :o
Ufo13 è offline  
 Discussione Chiusa


Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Google Pixel 10 è compatto e ha uno zoom 5x a 899€: basta per essere un best-buy? Google Pixel 10 è compatto e ha uno zoom ...
Prova GeForce NOW upgrade Blackwell: il cloud gaming cambia per sempre Prova GeForce NOW upgrade Blackwell: il cloud ga...
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
La memoria che cambierà l'AI: il ...
AI Overviews, un editore statunitense po...
AMD promette 1000 FPS con i Ryzen 9000X3...
L'IA italiana di Aton punta alla Silicon...
Amazon taglia i prezzi: upgrade da gamer...
Aruba Cloud semplifica e potenzia l'offe...
Il futuro del nastro magnetico è ...
Roborock Q7 M5 sotto i 180€: super offer...
Borderlands 4 su PC, il CEO di Gearbox a...
Samsung Galaxy S25 a partire da 669€: of...
TikTok, un'ulteriore proroga da Trump in...
Amazon fa tremare i prezzi: 27 super off...
Apple perde l'ex capo di Siri e figura c...
Fine supporto anche per Windows 11 23H2:...
LG presenta la pompa di calore Therma V ...
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: 15:50.


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