Метод canMove в классе Model должен быть реализован в соответствии с условием задачи.
public boolean canMove(){

      boolean hasEqualsTiles = false;
          for (int x = 0; x < FIELD_WIDTH; x++) {
              for (int y = 0; y < FIELD_WIDTH; y++) {
                  if(gameTiles[x][y].value == 0)  hasEqualsTiles = true;
                  if (x<=FIELD_WIDTH-2 && gameTiles[x][y] == gameTiles[x+1][y]) hasEqualsTiles = true;
                  if (y<=FIELD_WIDTH-2 && gameTiles[x][y] == gameTiles[x][y+1]) hasEqualsTiles = true;
              }
      }
      boolean cM = getEmptyTiles().size() > 1 || hasEqualsTiles;
      return cM;
  }