프리셀의 재발견

우리가 처음에 컴퓨터를 사고 나서 윈도우를 설치하게 되면 기본적인 게임이 있다. 바로 지뢰찾기, 카드놀이, 프리셀, 하트. 리눅스에도 보면 아일라이어트 솔리테이에 프리셀이 내장되어 있다. (사실 이거 안에 뭔가 카드게임이 엄청나게 많지만..)

규링에게 있어서는 프리셀은 심심할 때 갖고노는 게임 중 하나이다. (나머지는 팡야랑 월오탱이랑 마작) 프리셀 규칙을 몰라서 초등학교 2학년때까진 거의 안했다가 초3때부터 제대로 알게 되어서는 가끔 심심하면 프리셀을 쭉 한다.

프리셀의 목적은 왼쪽에 있는 제한된 프리셀을 잘 이용하여 정해진 숫자의 카드를 이동하면서 오른쪽의 셀에 카드를 정리하는 것이다. 근데 이 게임이  참 재밌는 것이 카드 이동 수가 제한된다는 것이다. 기본 1장부터 시작해서 셀이 비어있는 숫자만큼 이동이 가능하다는 것이다. 이는 여러장을 움직이는 데 있어서 규칙이 있기 때문이다.

여러 장을 움직이는데는 LIFO 규칙이 적용된다. 2-3-4 세 장의 카드를 움직이려고 할 때, 우선 왼쪽의 프리셀을 확인한다. 셀이 두개 이상 비어 있을 경우, 먼저 2를 셀 위에 올리고, 그 다음에 3을 셀 위에 올린다. 그리고 남아있는 4를 원하는 위치에 움직이고 나서 프리셀에 있는 3을 가져오고, 2를 가져온다. 이렇게 해서 2-3-4가 동시에 움직이게 되는 것이다. 이게 컴퓨터 상에서 빨리 계산되어 움직이기 때문에 그냥 옮겨지는 것처럼 보일 뿐이지, 원래는 움직임도 다 확인하는 것이다. 그래서 툭하면 처음 하는 사람들이 몇 개 밖에 움직일 수 없다고 하는데 그게 머릿속으로 생각 안하고 해서 그렇다. 것보다 룰을 이해 못해서 못하는 사람들이 더 많지만..ㅇㅅㅇ;;

사진

 

이게 뭐 어때서 이러냐고?

순간적으로 생각났다. 고정된 메모리와 링크드 리스트로 이루어진 스택이. ㅇㅅㅇ (왜!)

스택 설명할 때 써먹을 수 있을 거 같은 기분이 들었다. 근데 이게.. 좋은 예시이긴 하다. 제한된 리소스를 움직이면서 처리하는 이 움직임이…..

p.s. 규링이 잠을 제대로 못자러 이럽니다….
p.s.2. 잠을 못잔 이유는 사진집 때문이 아닙니다. (의심할까봐..)