Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-04-2006, 13:03   #1
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Refactoring Post FirstPlayable

Allora...
...pronti a riniziare a lavorare

Io ho iniziato lavorando sugli state.
Sto facendo 3 cose:
1) spostando i metodi in modo che le prime tre cose che si incontrano siano:
- costruttore
- isCurrentState()
- update();
2) ogni stato che si occupa di gravità dovrà occuparsene internamente, ovvero se setta la gravità ad un valore diverso da normal, dopo deve esso stesso rimetterlo a normal
3) diminuire l'istanziazioni di classi state

Ho modificato WaitStateBeforeNewGemsPair.
Ora ritorna:
Codice:
            return new GemsPairOnControlState(config).update(timer,gridController);
mentre prima ritornava, praticamente, solamente
Codice:
new GemsPairOnControlState(config);
e tutto funziona.

Invece in CrushState c'è questo:
Codice:
return new GemFallState(config);
e con
Codice:
return new GemFallState(config).update(timer, gridController);
invece non passano i test ??

Ora ci riguardo ....
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:09   #2
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Aspettate con i refactoring, per favore.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:09   #3
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Ottimo refactoring!!!
...ha introdotto un bug che i test non mi hanno segnalato
Ora la gemsPair quando si spezza, se il tasto giù è premuto, non scende a gravità Strongest ma a Normal.

__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:10   #4
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Avete fatto commit per caso????


Quote:
P.S.: Fek spezzerà personalmente le manine al primo che proverà a fare un commit da venerdi a lunedi'
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:14   #5
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Quote:
Originariamente inviato da Jocchan
Avete fatto commit per caso????
Sì...io ...ma fek ha detto che aveva preso il tag e che si poteva ripartire con i refactoring....

Quote:
Ora che la First Playable e' chiusa ed ho preso la tag dalla quale verranno prodotte le build da distribuire, il trunk e' di nuovo libero e potere iniziare i refactoring dei quali abbiamo parlato.
http://www.hwupgrade.it/forum/showpo...17&postcount=1


Ho perso le dita???
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:17   #6
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da Bonfo
Sì...io ...ma fek ha detto che aveva preso il tag e che si poteva ripartire con i refactoring....



http://www.hwupgrade.it/forum/showpo...17&postcount=1


Ho perso le dita???

Ha preso il tag, ma sono sorti altri problemi che ci conviene provare a risolvere.
Questo weekend doveva essere destinato al playtesting, credo sia sbagliatissimo cercare di accelerare i tempi e crearci da soli altri problemi.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:18   #7
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Ok...reverto tutto!!!
O almeno ci provo

...fino a lunedì non tocco più nulla
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:20   #8
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Quote:
Originariamente inviato da Bonfo
Ok...reverto tutto!!!
O almeno ci provo
Aspetta, vediamo prima che dicono anche Fek e Vicius.
E' la mia opinione, ma se hanno detto così un motivo ci sarà.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:23   #9
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
REVERT ESEGUITO.
Fino a lunedì fermo i lavori "PUBBLICI"...
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:24   #10
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Oooops...non aqvevo letto.

in ogni caso mi sono salvato le modifiche che ho fatto...quindi quando vogliamo le rifaccio in 5 sec

Ora vedo di andare avanti con il refactoring sulla mia copia locale ... poi per i play test uso quella della build.
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 13:25   #11
Jocchan
Senior Member
 
L'Avatar di Jocchan
 
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
Grazie Bonfo (e meno male che hai salvato le modifiche ), vedrò di parlarne con Fek e Vic per cosa ci conviene fare.
Intanto, vediamo di aprire un altro topic per vedere se riusciamo a risolvere questi problemi di compatibilità sorti all'ultimo minuto?
Sicuramente sono più urgenti.
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam.
Jocchan è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 14:19   #12
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Certo...concentriamoci su quelli.

Sugli state però devo dire una cosa.
Ho notato come in crushState si faccia un return new FallGemState senza update. Lo capisco perchè rende difficili moltissimi test.

A questo punto mi viene da dire....o tutto o niente.

Ovvero o tutti fanno un return new STATE.Update() oppure non lo fa nessuno!!!
è una semplice scelta stilistica....tutto funziona uguale...solo bisogna mettere a posto i test di conseguenza.

Capire cosa succede quando faccio update è una delle cose che mi ha sempre fatto spendere un sacco di tempo nei test. Renderlo chiaro sarebbe fantastico....

A questo punto mi verrebbe da dire di togliere gli update dai return....forse diventa tutto un po' più deterministico
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 15:16   #13
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Colpa mia che ho fatto un po' di confusione, scusate. Ho preso il tag per lasciare il trunk libero per il refactoring. Potete tranquillamente continuare.

Bonfo, scrivi prima il test che copre la condizione che si e' verificata a seguito del tuo refactoring, cosi' da andare sul tranquillo.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 15:30   #14
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Ora non posso....sto uscendo.
Appena torno a casa scrivo il test.

Sarebbe utile anche avere un'opinione da parte di tutti per sapere che fare con questi update.
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 22-04-2006, 19:25   #15
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Fatto il test...ma anche con la versione corretta non passa.
Ecco il test:
Codice:
    public void testSlaveGemFallFaster()
    {
        controller.getGemsPair().rotateClockwise();
        controller.getGemsPair().getPivotGem().drop();
        controller.update(timer);
        
        assertEquals(Config.createForTesting().getInteger("StrongestGravityMultiplier") * 0.5, grid.getActualGravity(), 0.01);
                
        input.notifyKeyEvent(KeyEvent.DOWN, KeyEvent.PRESSED);
        
        controller.reactToInput(timer);

        assertEquals(Config.createForTesting().getInteger("StrongestGravityMultiplier") * 0.5, grid.getActualGravity(), 0.01);

        input.notifyKeyEvent(KeyEvent.DOWN, KeyEvent.RELEASED);
        
        controller.reactToInput(timer);

        assertEquals(Config.createForTesting().getInteger("StrongestGravityMultiplier") * 0.5, grid.getActualGravity(), 0.01);
    }
Il test non passa perchè in realtà sia grid che la slaveGem lo sentono benissimo che la gravità ritorna normale, solo che GemsPairOnControlState prima di far cadere la slaveGem risetta sempre e comunque la gravità a Strongest.

A questo punto o il test è sbagliato "concettualmente" oppure il modo in cui viene fatta cadere la salveGem non è pulitissimo.

Ora ci sono 2 possibiltà nel caso il test sia corretto:
o si spezza lo stato in GemsPairOnControlState in 2 aggiungendo lo stato SlaveGemFall in modo da cambiare questo codice
Codice:
    public void reactToInput(TimerInterface timer)
    {        
        if(!currentState.isCurrentState("StoneFall") && !currentState.isCurrentState("GemFall")) && !currentState.isCurrentState("SlaveGemFall "))
        {
            inputReactor.reactToInput(timer);
        }
    }
oppure si fanno 2 metodi pubblici di gridController in modo da abilitare e disabilitare gli input e il relativo getter...così gli stati abilitano meno gli input e il metodo suddetto usa il getter per capire che fare.

A me paice molto più la soluzione 1

P.S.: ma dove vengono disabilitati gli input per la salveGem dopo che la gemsPair si è separata??? Dentro gemsPair??
__________________
Software engineer
Bonfo's Blog

Ultima modifica di Bonfo : 22-04-2006 alle 19:32.
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2006, 11:00   #16
Bonfo
Senior Member
 
L'Avatar di Bonfo
 
Iscritto dal: Nov 2005
Città: Bologna
Messaggi: 1303
Sarà anche
..ma riuppo il thread perchè il test che ho postato è ancora lì che deve capire che fine deve fare.
Ripeto:il comportamento è strano.

In sti giorni ci sarò a sprazzi...ma dopo questo gli state sono abbastanza puliti.
Dopo passerò all'attaco degli action .... e lì si che ci sarà da fare a botte
__________________
Software engineer
Bonfo's Blog
Bonfo è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2006, 11:16   #17
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Ufo, puoi dare una mano a Bonfo che tu conosci benone questa parte?
fek è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2006, 11:27   #18
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Quote:
Originariamente inviato da fek
Ufo, puoi dare una mano a Bonfo che tu conosci benone questa parte?
Certo, Bonfo contattami su MSN, non ci sono oggi pomeriggio quindi dovremmo fare sul tardi o subito :P
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2006, 11:34   #19
cisc
Senior Member
 
L'Avatar di cisc
 
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
vorrei proporre una forma di organizzazione del refactoring, stile assegnazione del refactoring delle varie parti del codice stile task, però a rotazione, tipo un giorno 1 guarda l'audio, un'altro guarda l'engine, ecc, ecc, il giorno successivo a rotazione, in modo da evitare di lavorare nello stesso momento allo stesso codice....
__________________
GNU MyServer Wants YOU!!
We live thinking we will never die. We die thinking we had never lived. Jason Becker
cisc è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2006, 11:53   #20
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Ok cisc. Scrivi qui l'elenco dei refactoring di cui abbiamo bisogno e li assegnamo.
fek è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
La Serie A con DAZN e Amazon Prime con l...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
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: 04:38.


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