더북(TheBook)
  console.log(newData);
  [1, 2, 3, 4].forEach((cellData, i) => {
    [1, 2, 3, 4].forEach((rowData, j) => {
      data[3 - j][i] = Math.abs(newData[i][j]) || 0;
    });
  });
  break;
}

네 방향으로 정렬하기와 숫자 합치기까지 모두 구현했습니다. ij 때문에 무척 헷갈렸을 겁니다. 생각만으로 구현하기 어렵다면 노트에 배열을 그리고 순서대로 숫자를 대입해 보는 것도 방법입니다.

마지막으로 moveCells() 함수의 끝부분에서 put2ToRandomCell() 함수를 호출합니다. 그러면 숫자를 정렬하고 합친 후 무작위 위치에 숫자 2 타일을 새로 생성합니다. draw() 함수보다는 위에 있어야 새로운 타일이 화면에 표시됩니다.

function moveCells(direction) {
  (중략)
  put2ToRandomCell(); // 무작위 위치에 새로운 숫자 2 넣기
  draw();
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.