'element swapping in a 4x4 array with numbers

I am making a game like this one : https://i.stack.imgur.com/mnbFw.jpg. I am having trouble coding the algorithm to swap numbers between each others. In my game , the 0 acts as the empty tile. This algorithm was originally for a 3x3 grid but I simply switched the 3's to 4's. I think that this is what's causing issues but I can't seem to find why.

  {
      int j, i;

      for (i = 1; i < 4; i++)
      {
          for (j = 0; j < 4; j++)
          {
              if (t1[i, j] == 0)
              {
                  t1[i, j] = t1[i - 1, j];
                  t1[i - 1, j] = 0;
              }
          }
      }
  }

  static void scan_above(int[,] t1)
  {
      int j, i;

      for (i = 1; i >= 0; i--)
      {
          for (j = 0; j < 4; j++)
          {
              if (t1[i, j] == 0)
              {
                  t1[i, j] = t1[i + 1, j];
                  t1[i + 1, j] = 0;
              }
          }
      }
  }

  static void scan_left(int[,] t1)
  {
      int j, i;

      for (j = 1; j >= 0; j--)
      {
          for (i = 0; i < 4; i++)
          {
              if (t1[i, j] == 0)
              {
                  t1[i, j] = t1[i, j + 1];
                  t1[i, j + 1] = 0;
              }
          }
      }
  }

  static void scan_right(int[,] t1)
  {
      int j, i;

      for (j = 1; j < 4; j++)
      {
          for (i = 0; i < 4; i++)
          {
              if (t1[i, j] == 0)
              {
                  t1[i, j] = t1[i, j - 1];
                  t1[i, j - 1] = 0;
              }
          }
      }
  }```


Solution 1:[1]

I'm confused about why you're looping through all the values in the matrix. Unless there are considerations that aren't included in the question, this is all it should take:

    static void MoveRight(int xOfZero, int yOfZero)
    {
        int rightValue = spaces[xOfZero, yOfZero + 1];
        spaces[xOfZero, yOfZero + 1] = 0;
        spaces[xOfZero, yOfZero] = rightValue;
    }

FYI I hastily put together my matrix so it's indexed backwards, where x is the row number and y is the column. You could easily follow the same steps to make a move for every direction.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 JediOfTheShire