매일매일 과제이 치여 살다보니 블로그를 운영하는 것이 쉽지 않다.
거의 방치 수준으로 치닫고 있다.
사실 방치 맞다.(;;;)
과제 중에 특히 팀 프로젝트가 많아서
하고는 있지만 힘든 건
사람 수 만큼 배로 늘어나는 느낌이다.
처음엔 파이 게임으로 구현하려고 했으나,
인터페이스가 똥망이라서 + 알고리즘 구현의 대실패의
환상적인 콜라보가 나의 대뇌를 강타하니
내 멘탈과 함께 프로젝트도 터져버렸다.
어찌저찌 구현 완료
아무튼 어찌저찌 성공을 하긴 하게 되었다.
처음에 애를 먹었던 것은 단연 알고리즘이었다.
UX자체는 매우 간단하고 명료하지만,
그것을 구현하는 데에는 좌우뇌가 서로 단교하는
그런 끔찍한 느낌이었다.
그럼 그 알고리즘은 뭔가.
충공깽의 메커니즘
처음에는 혼자서 구현해보려고 노력했다.
물논 게임 개발의 첫 경험이자, 이제 프로그래머 시작하는
그러한 시작의 마을 초보자에게는 무리였다.
그래서 선택한 방법은 다른 사람이 짠 코드를 해석하고
내것으로 만드는 것이었는데,
끔찍한 가독성과 변태같은 알고리즘은
부탁을 랄치게 만들 정도였다.
그리고 유튜브까지 동원하여 강의를 깔짝대다가 보였다.
빈틈의 실.
생각보다는 쉬웠다.
딱 3가지 함수만 있으면 됐었다.
딱, 이 3가지만 있으면 매우매우매우매우 쉽게 구현이 되었따.
- 방향에 따라서 왼쪽으로 정렬 할 수 있게 끔 회전시키고,
- 왼쪽으로 정렬 후, 같은 타일이 있다면 합병한다.
- 그리고 다시 한 번 더 왼쪽으로 정렬하고,
- 원래의 매트릭스 방향으로 회전하여 되돌려 놓으면 된다.
이때 회전은 총 4번만 실행된다.
왜냐고?
90도씩 4번 돌리면 360도다.
그럼 원래대로 돌아온다.
후기
와... 장난아니게 힘들었다.
물논 힘든 만큼 성장한 느낌이 든다.
이것만큼은 확실한 것 같다.
하지만 조금 아까웠던 것은, 기존의 코드를 참고하긴 했다는 것.
물론 알고리즘이나 인터페이스가 장난아니게 멋졌지만
그런 대부분의 것들을 유지 보수 및 추가하면서 완성했다.
이번에는 했다라는 것에 의미를 두자.