anchor.diff:        }
         elements++;
       }
  -    if(this.outOfBounds(x,y+1) == false && grid.getElement(x, y) >= grid.getElement(x, y+1)) //arriba
  +    if(this.outOfBounds(x,y+1) == false && grid.getElement(x, y) >= grid.getElement(x, y+1)) //derecha
       {
         this.factor(0, 1, first);
         grid.setElement(x, y, max);
  -      auxList = this.maxDecrecimientosList(grid,x,y+1,false);
  +      auxList = this.maxDecrecimientosList(grid,x,y+1,false,0,1);
         count.add(auxList[0]+1);
  -      addedcount.add(auxList[1]+aux*this.factor(0,1,first));
  +      addedcount.add(auxList[1]+aux*this.factor(direcX, direcY, false));
         grid.setElement(x, y, aux);
         if(grid.getElement(x, y) == grid.getElement(x, y+1))
         {
  
positive.code:    * la mayor suma de elementos. Por ejemplo si tenemos dos caminos que empiezan de un punto de valor 16 y son 16-16-2 y 16-8-4-2 nos
     * quedamos con el de 16-16-2.
     */
    List<int> maxDecrecimientosList(Grid grid, int x, int y, bool first)
    {
      List<int> count = new List<int>();
      List<int> addedcount = new List<int>();
  
negative.code:     Game.move(this.globalMove);
    }
    
    List<int> getMove(Grid testGrid, List<int> punto, int depth, List<Move> pMoves, int amountMoves)
    {
      List<int> decrecimientos = new List<int>(); //array that will contain the different amount of decrecimientos from up/down/left/right
      List<Move> prevMoves = this.cloneList(pMoves,amountMoves);
      List<Move> moveList = new List<Move>();
      List<int> depthList = new List<int>();
      int count = 0;
      List<int> aux = new List<int>();
      Grid moveGrid = testGrid.clone();
      List<int> temp;
      List<int> returnList = new List<int>();
      
      //arriba
      moveGrid.simulateMoveUp();
      if(isInList(prevMoves, amountMoves, Move.down) == false && moveGrid.compareGrid(testGrid) != 0)
      {
        aux = this.maxDecrecimientosList(moveGrid,punto[0],punto[1],true,0,0);
        decrecimientos.add(aux[1]);
        moveList.add(Move.up);
        depthList.add(depth);
        count++;
        if(depth != 0 && aux[1] != 0)
        {
          prevMoves.add(Move.up);
          temp = this.getMove(moveGrid, punto, depth-1, prevMoves, amountMoves+1);
          if(temp[0] != -1)
          {
            decrecimientos.add(temp[0]);
            moveList.add(Move.up);
            depthList.add(temp[1]);
            count++;
          }
        }
  