anchor.diff:      List<int> decrecimientos = new List<int>();
       List<Move> moveList = new List<Move>();
       int count = 0;
  -    
  -    if(testGrid.getElement(0, 0) == 0 && moves > 10)
  -    {
  -      return;
  -    }
  +    List<int> punto = this.puntoMasGrande(testGrid);
  +    
  +    punto[0] = ((punto[0]+0.25)/2.0).truncate()*3;
  +    punto[1] = ((punto[1]+0.25)/2.0).truncate()*3;
  +    
       //arriba
       moveGrid.simulateMoveUp();
       if(moveGrid.compareGrid(testGrid) != 0)
       {
  -      decrecimientos.add(this.maxDecrecimientos(moveGrid,0,0));
  +      decrecimientos.add(this.maxDecrecimientosList(moveGrid,punto[0],punto[1])[1]);
         moveList.add(Move.up);
         count++;
       }
  
positive.code:     moveGrid.simulateMoveDown();
      if(moveGrid.compareGrid(testGrid) != 0)
      {
        decrecimientos.add(this.maxDecrecimientos(moveGrid,0,0));
        moveList.add(Move.down);
        count++;
      }
  
negative.code:     }
      return true;
    }
  
    int logaritmo(int element)
    {
      int x=0;
      int current = element;
      if(element == 0)
      {
        return 0;
      }
      while(element%2 == 0)
      {
        x++;
        element = (element/2).round();
      }
      return x;
    }
    
    List<int> puntoMasGrande(Grid grid)
    {
      List<int> punto = new List<int>();
      punto.add(0);
      punto.add(0);
      int valor = 0;
      
      for(int i=0; i<4; i++)
      {
        for(int j=0; j<4; j++)
        {
          if(grid.getElement(i, j) > valor)
          {
            punto[0] = i;
            punto[1] = j;
            valor = grid.getElement(i, j);
          }
        }
      }
      
      return punto;
    }
  }