| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  04-02-2008, 13:55 | #1 | 
| Senior Member Iscritto dal: Oct 2002 Città: San Jose, California 
					Messaggi: 11794
				 | 
				
				Refactoring di Actions
			 
		http://fcarucci.homeip.net:8080/crui...id.action.html Abbiamo due problemi: - CrushByFlashAction ha una complessita' di 3.2 contro una complessita' media di 1.5. Tutto cio' che sta sopra 2.0 merita la nostra attenzione. Mi serve un volontario che si occupi di semplificare questa action per poi eliminarla. - RemoveDroppableAction: c'e' un metodo non testato. Se quel metodo non e' testato ed e' vuoto, perche' sta li'? Va eliminato o portato in una classe base. Lo scopo ultimo sara' la rimozione delle Action, perche' hanno un'interazione davvero oscura col resto del codice. Ma prima di tutto vanno semplificate, per facilitarne la rimozione. In futuro faremo la stessa cosa con un bel Command Pattern, magari semplificato. Mi servono due volontari. 
				__________________ "We in the game industry are lucky enough to be able to create our visions" @ NVIDIA | 
|   |   | 
|  04-02-2008, 20:31 | #2 | 
| Senior Member Iscritto dal: Nov 2005 Città: Bologna 
					Messaggi: 1303
				 | 
		Col command dopo ci viene il log gratis.    | 
|   |   | 
|  05-02-2008, 00:37 | #3 | 
| Member Iscritto dal: Apr 2006 Città: Gazzaniga (BG) 
					Messaggi: 67
				 | 
		Volontario per la CrushByFlashAction presente. O almeno, provo a lavorarci su e vi dico  EDIT: ma sbaglio o questa classe non è per nulla testata? E se è così, perchè il Coverage Report indica una copertura del 95%? Che devo fare? I test ci sono ma da un'altra parte? Li scrivo? Lascio perdere tanto poi verrà eliminata? Ditemi un po' voi   Ultima modifica di Baol : 05-02-2008 alle 01:05. | 
|   |   | 
|  05-02-2008, 12:08 | #4 | 
| Senior Member Iscritto dal: Dec 2000 Città: bologna 
					Messaggi: 1309
				 | |
|   |   | 
|  05-02-2008, 12:29 | #5 | |
| Senior Member Iscritto dal: Oct 2002 Città: San Jose, California 
					Messaggi: 11794
				 | Quote: 
 Si', quella era l'idea, ma l'esecuzione non fu delle piu' felici  Baol, applica l'antica tecnica di refactoring delle sette stelle di hokuto dell'assimilazione anale. Eliminala quell'action. 
				__________________ "We in the game industry are lucky enough to be able to create our visions" @ NVIDIA | |
|   |   | 
|  05-02-2008, 13:32 | #6 | 
| Member Iscritto dal: Apr 2006 Città: Gazzaniga (BG) 
					Messaggi: 67
				 | 
		Porto tutto in Grid? Non dovrebbe essere complicato EDIT: ma se ci sta lavorando già 71104 a sto punto io mi fermo... Ultima modifica di Baol : 05-02-2008 alle 13:39. | 
|   |   | 
|  05-02-2008, 13:47 | #7 | 
| Senior Member Iscritto dal: Nov 2005 
					Messaggi: 1545
				 | 
		No, per favore, il codice deve essere portato VIA da Grid allo stato attuale delle cose.
		 | 
|   |   | 
|  05-02-2008, 13:59 | #8 | 
| Senior Member Iscritto dal: Oct 2002 Città: San Jose, California 
					Messaggi: 11794
				 | 
		
Continua da dove ha lasciato 71104 oggi e porta via il codice da Grid.
		 
				__________________ "We in the game industry are lucky enough to be able to create our visions" @ NVIDIA | 
|   |   | 
|  05-02-2008, 14:07 | #9 | |
| Member Iscritto dal: Apr 2006 Città: Gazzaniga (BG) 
					Messaggi: 67
				 | Quote: 
  ). | |
|   |   | 
|  05-02-2008, 14:10 | #10 | |
| Senior Member Iscritto dal: Apr 2003 Città: Genova 
					Messaggi: 4739
				 | Quote: 
   
				__________________ 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 | |
|   |   | 
|  05-02-2008, 14:42 | #11 | 
| Senior Member Iscritto dal: Oct 2002 Città: San Jose, California 
					Messaggi: 11794
				 | 
		Io e Fede ci stiamo facendo prendere la mano da Ken Shiro    
				__________________ "We in the game industry are lucky enough to be able to create our visions" @ NVIDIA | 
|   |   | 
|  05-02-2008, 14:44 | #12 | |
| Senior Member Iscritto dal: Oct 2002 Città: San Jose, California 
					Messaggi: 11794
				 | Quote: 
  Cosi' tutti sono piu' veloci. Inoltre il codice e' di tutti, come avrai notato non c'e' qualcuno che ha la responsabilita' di un qualche pezzo di codice o sistema, ma tutti interveniamo ovunque. Quindi e' ottimo per te ripartire dal lavoro fatto da Alberto e proseguire in quella direzione. Mi raccomando: fai le cose semplici. Non devi fare il commit per forza. Se quello che hai scritto non e' semplice, chiedi consigli qui su come semplificarlo, oppure fai il revert e ricomincia. La seconda volta di solito funziona tutto meglio e si fa molto piu' in fretta. 
				__________________ "We in the game industry are lucky enough to be able to create our visions" @ NVIDIA | |
|   |   | 
|  05-02-2008, 15:36 | #13 | 
| Senior Member Iscritto dal: Nov 2005 
					Messaggi: 1545
				 | 
		Comunque penso che Ken Shiro abbia segnato profondamente la mia esistenza :| Ho pure la OST originale | 
|   |   | 
|  05-02-2008, 15:45 | #14 | 
| Member Iscritto dal: Apr 2006 Città: Gazzaniga (BG) 
					Messaggi: 67
				 | 
		Stanno per suonare le campane per la CrushByFlashAction. E' tutto a posto, ho solo una domanda: possono esserci più FlashingGem contemporaneamente? E quindi la crush deve tenere conto che possano crushare più d'una? Perchè modificando il codice l'ho involontariamente portato a considerare una sola flashing (modifico in un attimo nel caso, basta aggiungere un ciclo) ma nessun test è fallito per questo... Questo vuol dire che devo aggiungerlo vero?   | 
|   |   | 
|  05-02-2008, 16:08 | #15 | 
| Member Iscritto dal: Apr 2006 Città: Gazzaniga (BG) 
					Messaggi: 67
				 | 
		Ho modificato per permettere più flashingGems, i test che coprono ci sono già. Al momento ho lasciato in Grid, semplicemente perchè l'unica cosa che ho aggiunto è un'iterazione sulla griglia, e per portarla fuori ci serve l'Iterator no? (avevo anche pensato a un'eventuale classe accessoria "GridGemFinder" in cui spostare tutti i metodi che cerchino delle gemme nella lista, però non mi convinceva). Ora committo, qui di seguito il codice: Codice: public void updateCrushes()
    {
        crushByFlash();
        crushByChestAction.reset();
        doIteration(crushByChestAction);
        crushedGemsCounter += crushByChestAction.getCrushedGemsCounter();
        if(crushByChestAction.isCrushed())
        {
            chainCounter++;
        }
    }
    private void crushByFlash()
    {
        DroppableList flashingGems = findFlashingGems();
        for(Droppable flashingGem : flashingGems)
        {
            flashingGem.getCrusherObject().makeCrush(this);
        }
    }
    private DroppableList findFlashingGems()
    {
        DroppableList listOfFlashingGems = new DroppableList();
        for(Droppable droppable : droppableList)
        {
            if(droppable.getGridObject().getType().isFlashingGem()
                && !droppable.getFallingObject().isFalling())
            {
                listOfFlashingGems.add(droppable);
            }
        }
        return listOfFlashingGems;
    }  | 
|   |   | 
|  05-02-2008, 16:17 | #16 | |
| Senior Member Iscritto dal: Oct 2002 Città: San Jose, California 
					Messaggi: 11794
				 | Quote: 
 Si', devi aggiungerlo tu. Domanda a Jocchan se devi considerare o no questo caso prima. 
				__________________ "We in the game industry are lucky enough to be able to create our visions" @ NVIDIA | |
|   |   | 
|  05-02-2008, 16:18 | #17 | 
| Senior Member Iscritto dal: Oct 2002 Città: San Jose, California 
					Messaggi: 11794
				 | Codice: flashingGem.getCrusherObject().makeCrush(this); Codice: if(droppable.getGridObject().getType().isFlashingGem()
                && !droppable.getFallingObject().isFalling())
            {
                listOfFlashingGems.add(droppable);
            }Ottimo lavoro fino ad ora   
				__________________ "We in the game industry are lucky enough to be able to create our visions" @ NVIDIA | 
|   |   | 
|  05-02-2008, 16:41 | #18 | 
| Senior Member Iscritto dal: Jul 2005 Città: Silent Hill 
					Messaggi: 1471
				 | 
		E' molto difficile che ci sia più di una flashing gem, ma non è impossibile. Questo perchè, pur avendo la limitazione (voluta) di non avere mai due flashing nella stessa coppia, è possibile che si verifichi questa situazione nella griglia: Codice: R - gemma rossa B - gemma blu F - flashing | | | | | | |RRRR RRR| |RRRR RRR| |BB BB| |BB F BB| ------------ Con il codice attuale cosa succederebbe in questa situazione? E se un'altra flashing venisse poggiata su quella già presente? Quello che deve succedere è che la flashing rimanga lì, sola soletta in fondo alla griglia, fino a quando non verrà in contatto con qualcosa. A quel punto, sempre seguendo l'ordine di priorità che ha adesso, dovrà azionarsi. Non ricordo però se era stato previsto il caso di due flashing a contatto tra loro. 
				__________________ DIAMOND CRUSH - Aut viam inveniam, aut faciam. Ultima modifica di Jocchan : 05-02-2008 alle 16:50. | 
|   |   | 
|  05-02-2008, 17:08 | #19 | 
| Senior Member Iscritto dal: Nov 2005 
					Messaggi: 1545
				 | 
		Per logica direi che se due flashing vengono a contatto allora tutte le flashing devono essere eliminate... Dopotutto e` un colore NO_COLOR no?
		 | 
|   |   | 
|  05-02-2008, 17:13 | #20 | |
| Senior Member Iscritto dal: Oct 2002 Città: San Jose, California 
					Messaggi: 11794
				 | Quote: 
 
				__________________ "We in the game industry are lucky enough to be able to create our visions" @ NVIDIA | |
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 09:22.









 
		 
		 
		 
		













 
  
 



 
                        
                        










