PDA

View Full Version : Thread dei Problemi


Pagine : 1 2 3 4 5 6 [7]

Bonfo
01-07-2006, 21:28
ATTENZIONE: io non toglierei i separatori che con tanta fatica Cesere ha messo. :nonsifa: è l'unico modo per avere i path indipendenti dalla piattaforma.


Già troppo tardi :mad: :mad:
Insomma...non possiamo fare e disfare il lavoro.

Decidiamo: ci vuole o no java.io.FileSeparator.
Perchè Cesare appena passa li rimette tutti :asd: :asd:

71104
01-07-2006, 22:06
meglio lasciarli, non c'era nessun motivo di toglierli...

^TiGeRShArK^
02-07-2006, 00:57
ATTENZIONE: io non toglierei i separatori che con tanta fatica Cesere ha messo. :nonsifa: è l'unico modo per avere i path indipendenti dalla piattaforma.

Inoltre mi sa che il test era stato messo a posto per capire da solo quante texture deve caricare e di conseguenza controllare che utte siano caricate.
Se proprio dela vedi brutta fai una stampa delle texture caricate per poi controllare ;)
non è assolutamente vero.
I path sono assolutamente indipendenti dalla piattaforma anche con "/" anzi, è sbagliato usare il java.io.FileSeparator perchè quando ho fatto lo spike con java webstart ho dovuto buttare sangue a toglierli tutti perchè su windows NON potevano funzionare, in quanto java web start non usa il file system, ma utilizza direttamente il classloader per accedere ai files e si ritrovava dei backslash che non vogliono dire assolutamente nulla dato che il classloader usa gli slash.
Cmq dopo averli cambiati tutti ora mi ritrovo che anzichè caricare 44 texture ne carica 45...:mbe:

^TiGeRShArK^
02-07-2006, 01:00
Già troppo tardi :mad: :mad:
Insomma...non possiamo fare e disfare il lavoro.

Decidiamo: ci vuole o no java.io.FileSeparator.
Perchè Cesare appena passa li rimette tutti :asd: :asd:
ne avevamo parlato anche con cesare ai tempi e avevamo deciso di usare lo slash se non ricordo male perchè altrimenti ci possiamo dimenticare di usare java web start...
Oltre il fatto che secondo me la leggibilità del codice ci guadagna veramente tanto......:p
Questo tra l'altro era un cambiamento che era stato fatto parecchio tempo fa, ma solo nel branch java web start.
Poi per motivi di tempo ke non sto ad elencare non ho potuto fare il merge con la head e quindi ora si fa prima a rifare da zero il proting per web start, se decidiamo che ci serve, piuttosto che tentare il merge.
Ma cmq la questione dei file separator direi di lasciarla con gli slash dato che non hanno alcun svantaggio rispetto a java.io.FileSeparator, ma piuttosto rendono il codice più leggibile e soprattutto ci svincolano dal file system.

Bonfo
02-07-2006, 01:43
ne avevamo parlato anche con cesare ai tempi e avevamo deciso di usare lo slash se non ricordo male perchè altrimenti ci possiamo dimenticare di usare java web start...
Oltre il fatto che secondo me la leggibilità del codice ci guadagna veramente tanto......:p
Questo tra l'altro era un cambiamento che era stato fatto parecchio tempo fa, ma solo nel branch java web start.
Poi per motivi di tempo ke non sto ad elencare non ho potuto fare il merge con la head e quindi ora si fa prima a rifare da zero il proting per web start, se decidiamo che ci serve, piuttosto che tentare il merge.
Ma cmq la questione dei file separator direi di lasciarla con gli slash dato che non hanno alcun svantaggio rispetto a java.io.FileSeparator, ma piuttosto rendono il codice più leggibile e soprattutto ci svincolano dal file system.

Perfetto.
Allora se gli slash sono meglio di java.io.FileSeparator hai appena fatto un ottimo lavoro ;)
:mano:

71104
02-07-2006, 01:53
meglio lasciarli, non c'era nessun motivo di toglierli... come non detto ^^

^TiGeRShArK^
02-07-2006, 02:16
come non detto ^^
:D
e cmq, a parte tutto, provo un odio atavico verso java.io.FileSeparator :O

:p

cdimauro
03-07-2006, 08:20
Allora dovresti chiedere a Sun per quale motivo l'ha messo a disposizione... :asd:

Bonfo
03-07-2006, 15:17
Che ne dite di incominciare a stilare la lista dei Bug attualmente presenti?? :D
Io ne ho già un paio:
- le dynamite spariscono seubito...cosa che prima non facevano.
- risolto il problema con le dinamite ne dovrebbe spuntare uno sulle BigGem e la loro illuminazione quando sono a contato con el dinamiti (gestione del Bright)

Poi ricordo a tutti che stiamo lavorando per terminare:
- tutti i task pendenti che ci sono, quindi anche quelli delle storie accessorie
- refactoring vari e log.

Sottolineo come il refactoring ci deve portare ad un codice molto più manutenibile. Quindi finchè leggendo il codice non is capisce cosa fa...bisogn continuare!!!

OBIETTIVO FINALE: farci dare nuovi task da Jocchan :D :D

thebol
03-07-2006, 15:25
Che ne dite di incominciare a stilare la lista dei Bug attualmente presenti?? :D
Io ne ho già un paio:
- le dynamite spariscono seubito...cosa che prima non facevano.

e comparso con il refactoring di 71104(e i relativi test sembrano scomparsi...), cmq ci sto gia lavorando io. Il refactoring di dinamite (non ancora committato) è in questa direzione.


- risolto il problema con le dinamite ne dovrebbe spuntare uno sulle BigGem e la loro illuminazione quando sono a contato con el dinamiti (gestione del Bright)

in teoria essendo trattate tutte uguali, non si dovrebbero gia illuminare?
cmq non dovrebbe essere complicato farlo dopo il refactoring ;)
[/QUOTE]

Bonfo
03-07-2006, 16:46
in teoria essendo trattate tutte uguali, non si dovrebbero gia illuminare?
cmq non dovrebbe essere complicato farlo dopo il refactoring ;)


Non ho ancora potuto verificare per il non corretto funzionamento delle dinamiti, ma dovrebbe esserci un piccolissimo problema di visualizzazione

thebol
03-07-2006, 16:51
Non ho ancora potuto verificare per il non corretto funzionamento delle dinamiti, ma dovrebbe esserci un piccolissimo problema di visualizzazione

forse domani riesco a finire le dinamiti

se qualcuno vuole cmq fare un test per le big gem brightabili non sarebbe male ;)

VICIUS
03-07-2006, 17:57
OBIETTIVO FINALE: farci dare nuovi task da Jocchan :D :D
Per ora concentriamoci sul log e i refactoring. Una volta stabilizzato il codice facciamo una release e poi riprendiamo con i task. Che ne dite ?

ciao ;)

^TiGeRShArK^
03-07-2006, 22:02
Allora dovresti chiedere a Sun per quale motivo l'ha messo a disposizione... :asd:
in effetti penso che sia un retaggio delle prime versioni che ci stiamo trascinando dietro...
Ora a quello che vedo è sempre + sconsigliato accedere al file system senza passare dal class loader o addirittura da JINI(o come cacchio si chiama) :p

^TiGeRShArK^
03-07-2006, 22:03
Per ora concentriamoci sul log e i refactoring. Una volta stabilizzato il codice facciamo una release e poi riprendiamo con i task. Che ne dite ?

ciao ;)
si sono d'accordo :O
intanto io stasera vedo di corrompere il customer :asd:

cdimauro
04-07-2006, 08:12
in effetti penso che sia un retaggio delle prime versioni che ci stiamo trascinando dietro...
Ora a quello che vedo è sempre + sconsigliato accedere al file system senza passare dal class loader o addirittura da JINI(o come cacchio si chiama) :p
Io sconsiglierei di usare Java... :asd:

A parte gli scherzi, tante volto noto delle assurde complicazioni in Java e le sue librerie.

^TiGeRShArK^
04-07-2006, 17:37
Io sconsiglierei di usare Java... :asd:

A parte gli scherzi, tante volto noto delle assurde complicazioni in Java e le sue librerie.
bhè..quella di NON usare java.io.FileSeprator è una semplificazione non una complicazione :asd:

cdimauro
05-07-2006, 08:30
Non la pensava così chi l'ha introdotto... :asd:

Bonfo
07-07-2006, 17:08
Il Bug che ha trovato Tiger c'è ed e pure grosso.... :(

Ora il problema è: non c'era il test e bisogna farne uno nuovo oppure c'era e durante un refactoring è stato snaturato al punto che non testa più nulla??

A voi l'ardua sentenza.
Io fino a giovedì sparisco dalla faccia dellla terra...devo studiare l'esame più difficile di tutti :cry: :cry:

^TiGeRShArK^
07-07-2006, 18:35
Il Bug che ha trovato Tiger c'è ed e pure grosso.... :(

Ora il problema è: non c'era il test e bisogna farne uno nuovo oppure c'era e durante un refactoring è stato snaturato al punto che non testa più nulla??

A voi l'ardua sentenza.
Io fino a giovedì sparisco dalla faccia dellla terra...devo studiare l'esame più difficile di tutti :cry: :cry:
la mia idea è, nel caso sia possible, di introdurre qualche nuovo metodo per testare al posto di insertandupdate che a volte da risultati alquanto "ambigui" oltre che è orribile da leggere...
il problema è che non ho la minima idea di come fare... :muro:
Una volta introdotto un metodo più semplice per fare i test dovrebbe venirci anke + facile risolvere questo bug e gli altri (sempre in teoria però :p)
io x stasera sono out...
penso ke potrò fare qualcosa domani....
solo ke BRRRR... mi vengono i brividi solo a pensare a quei test ke non dovrebbero passare ma passano.. :mbe:

thebol
07-07-2006, 23:02
non capisco cosa abbiate contro insertAndUpdate..
se non vi piace usata grid.insertDroppable, ma la gemma risulterà isFalling = true situazione che in gioco coinvolge solo pivot e slave.

btw, sgamato il bug.
questo il test
public void testSixPerSixBug()
{
makeAllGemsFall();
insert2x2BlockOfGems(EMERALD, 12, 0);
grid.updateBigGems();
insertAndUpdate(createGem(EMERALD), 11, 0);

Droppable emerald = createGem(EMERALD);
Droppable slave = createGem(DIAMOND);
controller.getGemsPair().setPivot(emerald);
controller.getGemsPair().setSlave(slave);

emerald.getFallingObject().drop();

grid.insertDroppable(emerald , 11, 1);
grid.insertDroppable(slave , 13, 2);

assertNotNull(grid.getDroppableAt(12, 0));
grid.updateBigGems();
assertNotNull(grid.getDroppableAt(12, 0));

}
}

notare che se si toglie quella drop il test non fallisce(la updatebiggem agisce solo su gemme che hanno isFalling == false, per cui la gemma non verrebbe presa per fare l'update delle gemme). E equivalente per certi versi alla insertAndUpdate.

cmq ho indagato un po...
il problema e nelle varie extend.
In particolare la extendUp, cerca se ci si puo estendere verso l'alto.(canAddRow()).
Trova 2 gemme sopra dello stesso tipo della bigGem, procede con la AddRow.

La addRow prende la gemma da aggiungere sulla sx e la aggiunge.
Aggiungendola, la mette nella lista di quelle da cancellare.
E aggiorna il cell di bigGem in modo che si allarghi a coprire lo spazio lasciato dalla gemma mangiata. Essendo cell rettangolare, questa va ad occupare il posto della gemma mangiata, e lo spazio della gemma da mangiare.

Dopo di che si prosegue con la addRow. Questa va a cercare l'altra gemma, ma viene fuori la bigGem !?!?!?!?
Questo perche avendo gia allargato la cell, se nella gridElements si incontra prima la bigGem, si preleva questa. Questa viene addata alla lista di droppable da cancellare ed ecco perche in gioco sparisce.

L'altra gemma che doveva essere aggiunta invece non viene eliminata, ed infatti in gioco rimane!!!

non so se riesco a bugfixare per stasera... adesso vedo..

thebol
07-07-2006, 23:28
ho risolto quel test, ma molti altri test falliscono(di cui alcuni a ragione, visto che ho nuovi bug anche in gioco...).

Cmq direi che una possibile soluzione, sia invece di avere una addGem(droppable drop) avere una addGems(DroppableList droppableList), in modo da separare le azioni di aggiunta, cancellazione delle gemme e il resize della bigGem.

ps.fra l'altro sarebbe anche carino riuscire a includere la updateBigGem di grid interamente dentro a bigGem.
Riuscendolo a fare anche per la creazione, si ridurrebbero drasticamente i metodi di extendibleObject.

^TiGeRShArK^
08-07-2006, 03:15
ho risolto quel test, ma molti altri test falliscono(di cui alcuni a ragione, visto che ho nuovi bug anche in gioco...).

Cmq direi che una possibile soluzione, sia invece di avere una addGem(droppable drop) avere una addGems(DroppableList droppableList), in modo da separare le azioni di aggiunta, cancellazione delle gemme e il resize della bigGem.

ps.fra l'altro sarebbe anche carino riuscire a includere la updateBigGem di grid interamente dentro a bigGem.
Riuscendolo a fare anche per la creazione, si ridurrebbero drasticamente i metodi di extendibleObject.
mmmm...capito..
ma la domanda è...
com'è stato introdotto questo bug?
xkè ora abbiamo bisogno di addGems(DroppableList droppableList) mentre prima no?
onestamente mi sfugge... :mbe:

thebol
08-07-2006, 08:34
mmmm...capito..
ma la domanda è...
com'è stato introdotto questo bug?
xkè ora abbiamo bisogno di addGems(DroppableList droppableList) mentre prima no?
onestamente mi sfugge... :mbe:


probabilmente è saltato fuori quando e stata introdotta la cell in biggem e biggem e stata messa nella stessa lista delle droppable

thebol
08-07-2006, 08:45
provate a far esplodere una dinamite prima che questa sia arrivata a terra...

jappilas
08-07-2006, 09:22
provate a far esplodere una dinamite prima che questa sia arrivata a terra...
visto... per caso loop infinito da qualche parte ? :D

thebol
08-07-2006, 10:04
visto... per caso loop infinito da qualche parte ? :D

non lo so, cmq ho gia risolto per oggi dovremmo avere le dinamiti funzionanti...(tranne cancellazione delle gemme vicine..)

jappilas
08-07-2006, 10:18
non lo so, cmq ho gia risolto per oggi dovremmo avere le dinamiti funzionanti...(tranne cancellazione delle gemme vicine..)
:ave:
(davvero, meno male che qualcuno ci si dedica, io non ho più avuto tempo di farlo e probabilmente non saprei più dove mettere le mani con gli ultimi refactoring... :( )

71104
08-07-2006, 13:37
è per caso quel bug che rallentava la caduta del pair di un pixel all'ora? ^^
me n'ero accorto anche'io prima che iniziasse la crisi

thebol
08-07-2006, 14:10
è per caso quel bug che rallentava la caduta del pair di un pixel all'ora? ^^
me n'ero accorto anche'io prima che iniziasse la crisi

no, si bloccava proprio la gemsPair.

cmq ho appena committato per le dinamiti, ora funziona tutto come prima del refactoring

ps.cmq anche quel bug sembra sparito.

thebol
08-07-2006, 14:44
risolto il bug sulle bigGem
Ora committo poi continuo il refactoring(vorrei portare tutta la updateBigGem dentro bigGem, e pure la createNewBigGem).

ps.
Ho risolto come avevo detto.
ho creato un metodo addGem che accetta una droppable List. Percui ora colleziono prima le droppable da aggiungere, e poi le aggiungo.

^TiGeRShArK^
08-07-2006, 20:23
risolto il bug sulle bigGem
Ora committo poi continuo il refactoring(vorrei portare tutta la updateBigGem dentro bigGem, e pure la createNewBigGem).

ps.
Ho risolto come avevo detto.
ho creato un metodo addGem che accetta una droppable List. Percui ora colleziono prima le droppable da aggiungere, e poi le aggiungo.
ben fatto ;)
Ora vedo se posso fare qualcosa in mezz'oretta :p

^TiGeRShArK^
08-07-2006, 20:25
ehm..
mi sa ke eternal è down... :stordita:

^TiGeRShArK^
09-07-2006, 02:34
ora è di nuovo up...
però mi sa ke è un pò troppo tardi x mettermi a fare qualcosa di costruttivo :stordita:

Bonfo
09-07-2006, 13:20
Ecco...come promesso risolto il problema delle dinamiti ne è spuntato uno sulle BigGem :D :D

Il problema è che il bright è gestito come un offset che in Sprite è Cell.SIZE, mentre per le TiledSprite dovrebbe essere 3*Cell.Size.

Divertitevi. :D
Ci sentiamo giovedì.

CIAO.

P.S.: ottimo lavoro!!! :cincin:

Bonfo
09-07-2006, 19:54
Vabbè...se aspettavo voi... :sofico: :sofico:

Risolto il problema al Bright BigGem.

cionci
15-07-2006, 07:23
Ho fatto qualche commit... Sono rimasto un po' indietro sul codice, quale altro refactoring c'è da fare ?

Bonfo
15-07-2006, 12:35
Non so bene neanch'io a che punto siamo.
So solo che le ultime cose grosse sono state il logWriter e l'aver trasformato Grid in un elenco di Droppable e non più di celle e aver eliminato da BigGem la lista di gemme...ora non è più un contenitore ma una gemma essa stessa.

Da qui è uscita una nuova gerarchia di classi per ciò che riguarda le gemme.

Secondo me ora bisogna lavorare su Grid per semplificarla il più possiblie, controllare tutte le action e gli state, nell'ottica che gli state sono le uniche entità che possono e devono modificare la griglia.

In ogni caso se non sai da dove partire ci sono un sacco di TODO da eliminare ;) ;)

^TiGeRShArK^
21-07-2006, 12:45
Ma praticamente il progetto è definitivamente morto?
è da circa un mese che vi ho detto che bisognava rendere transient tutti i campi delle action che è inutile serializzare altrimenti sparava quelle eccezioni a raffica.....
Mi ricordo che l'ultima volta che ho guardato il codice non c'era + questo problema, anche se immagino che non loggasse tutto quello che ci serviva.
Se mi spiegate per bene che CAMPI dobbiamo loggare me la vedo io per fare tutte le modifiche necessarie e rendere serializable e transient i vari oggetti, ma altrimenti non so ke fare...
X ora ho provveduto ad eliminare tutte quelle odiosissime eccezioni implementando serializable in timer e rimuovendo TUTTI gli altri oggetti complessi che non erano serializzabili, ma non ho la minima idea se qualcuno di questi ci possa servire o no nel log.

Bonfo
21-07-2006, 13:38
ehm...io mi sono fatto di nebbia. Avevo esami da finire e poi sto per partire :sofico: :sofico:

Quindi parto chiedendo perdono....però non so a chi...qui non c'è mai nessuno :(

In ogni caso Tiger il vero problema è "che ci serve per fare il playback??"
Ovvero, appena qualcuno avrò capito quali sono le informazioni necessarie e sufficenti per il paly-back sapremo automaticamente cosa loggare ;)

Vabbè...io ora vado in vacanza!! :yeah:

BUONE VACANZE!!

cionci
21-07-2006, 15:43
Vabbè...io ora vado in vacanza!! :yeah:

BUONE VACANZE!!
Idem...anche io questa sera parto... Ci si rivede ad agosto :)

jappilas
21-07-2006, 15:58
Quindi parto chiedendo perdono....però non so a chi...qui non c'è mai nessuno :(
anche se sto studiando, leggo costantemente
se è il perdono che cerchi, posso concedertelo io... vai in pace fratello :sofico:
Vabbè...io ora vado in vacanza!! :yeah:
BUONE VACANZE!!
Idem...anche io questa sera parto... Ci si rivede ad agosto :)
beati vobis, io parto tra una settimana e vi rivedo a settembre :stordita:

^TiGeRShArK^
22-07-2006, 00:09
In ogni caso Tiger il vero problema è "che ci serve per fare il playback??"
appunto era quello ke volevo capire ank'io :p
buone vacanze a tutti ;)

thebol
22-07-2006, 16:45
In ogni caso Tiger il vero problema è "che ci serve per fare il playback??"
Ovvero, appena qualcuno avrò capito quali sono le informazioni necessarie e sufficenti per il paly-back sapremo automaticamente cosa loggare ;)


le info minime e indipendenti dall'implementazione del gioco, sono i tasti premuti + gameturn e il seed iniziale.

per quanto riguarda le action, non lo so.