본문 바로가기

Computer

프리셀과 그 이야기

프리셀 ( FreeCell )
사용자 삽입 이미지

프리셀 XP 버전

 
  최초의 프리셀 게임은  Eight Off  이다. 1968년 6월, 사이언티픽 아메리칸(Scientific American) 에 실린 글 중, 미국의 유명한 퍼즐리스트 마틴 가드너( Martin Gardner ) 가 기고한 "Mathematical Games" 에 따르면 최초의 프리셀 게임은  C. L. Baker 이 만든 게임과 매우 유사하다고 했다. C.L. Baker 가 만든 게임은 지금의 프리셀과, 카드의 색깔을 똑같은 것 끼리 놓는 다는 점을 빼고는(지금은 색깔을 번갈아 가며 배열) 매우 흡사하다. 그 후 Paul Alfille 라는 사람이 색깔을 번갈아 가며 배열한다고 규칙을 바꾸므로써, 지금의 프리셀을 만들어 내었다. 그는 프리셀을 PLATO 교육용 컴퓨터 시스템을 위해 Tutor 컴퓨터 언어로 프로그래밍하였다.
사용자 삽입 이미지

프리셀 Windows Classic 테마


  프리셀은 Jim Horne 에 의해 대중화 되는데 그는 PLATO 시스템에서만 돌아가던 프리셀을 윈도우즈 버전으로 옮겼다. 프리셀은 Microsoft Win32s 에 테스트 프로그램으로 포함되는데, 그 후  Microsoft Entertainment Pack 2와 Best Of Microsoft Entertainment Pack에도 추가가 된다. 그러나 프리셀은  Windows 95 에서 부터 뒤의 모든 Windows 계열 운영체제에 포함되기 전까지 크게 눈에 띄지는 않았다. ( 참고로 윈도우즈 비스타에는 프리셀이 기본으로 들어있지 않고 따로 설치를 해주어야 한다.)

  Don Woods 는 최초로 프리셀을 자동으로 풀어주는 프로그램을 만들어냈다. 그 후,  Tom Holroyd, Shlomi Fish, Gary Campbell 이 더 빠르게 푸는 프로그램을 만들었고 Gary Campbell 의 프로그램은 이곳 에서 다운로드가 가능하다.

  마이크로소프트 프리셀은 1990년대 들어서 매우 인기를 끌었고, 32000 개의 게임들 중 몇 개가 풀릴 것 인지는 명확하지 않았다. 그래서 Dave Ring 라는 사람이 인터넷 프리셀 프로젝트(The Internet FreeCell Project) 를 시작하였고, 모든 게임들을 오직 사람들만을 이용해서 풀기 시작하였다. Ring 은 100 개의 게임들을 지원자들에게 주고 풀게 한 다음 안풀린 것을 다시 다른 사람에게 주는 방식으로 해서 모든 게임들을 풀어나갔는데 이 프로젝트는 1995년 10월에 끝났고 단 11,982 번만 풀리지 않았다. 나중에 이 게임은 컴퓨터 소프트웨어에 의해 풀리지 않는 다는 것이 보여졌다.

  오리지날 마이크로소프트 프리셀은 32000 개의 게임들을 수록하고 있었다. 이 게임들은 "Microsoft 32,000" 으로 알려졌다. 마이크로소포트 프리셀의 나중 버전들은 100만개 정도의 게임들을 가지고 있다. ( Windows XP 에는 100만개의 프리셀 게임들이 들어있다.) 그 100만개 중에서는 현재  #11,982,  #146,692, #186,216, #455,889, #495,505, #512,118, #517,776, and #781,948 가 풀리지 않는 것이라고 알려져 있다. 이 것을 다 푼 사람은 Danny A. Jones 과 Gary D. Campbell 로, 100 만개의 게임들을 모두 해본 결과 위 8개 빼고는 모든 게임의 풀이를 찾아내었다.

  프리셀을 하는 방법

  나도 처음에 프리셀을 어떻게 하는지 몰라 무지 애를 먹었던 것이 기억이 난다. 한번 그 때로 돌아가서 아주 자세히 가르쳐 보기로 한다.

  일단 프리셀의 목표는 다음과 같다.
위의 오른쪽 빈 4개의 칸에 A,2,3,...,10,J,Q,K 까지 색깔별로 순서대로 놓는 것
( A 가 제일 먼저, K 가 제일 나중으로 놓음 )
 이다.  즉, 스페이드(♠)는 스페이드 끼리, 클로버(♣)는 클로버끼리, 하트(♥)는 하트 끼리, 다이아(◆) 는 다이아 끼리 에이스 부터 킹 까지 순서대로 놓는 것이 목표이다.

   그렇다면 아래에 놓여있는 카드들을 위 홈셀(오른쪽 4칸) 으로 옮기기 위해서는 어떻게 해야하지? 홈셀로 옮길 수 있는 카드들은 맨 아래에 놓인 카드들만을 옮길 수 있다. 즉, 아래 그림의 붉은색 사각형으로 둘러쌓인 카드들
사용자 삽입 이미지

  만을 위 홈셀로 옮길 수 있다. 즉, 위의 경우에서는 맨 오른쪽의 스페이드 A 가 갈 수 있다.
  그렇다면 게임의 목표를 만족시키기 위해서 번호가 낮은 것들은 아래쪽으로 빼고 번호가 높은 것들은 위쪽으로 올려야 한다. 그런데 여기서 그러기 위한 규칙이 있다. 바로 검정색(클로버, 스페이드) 와 빨간색(다이아, 하트) 를 번갈아 가면서 놓아야 하는 것이다. 밑의 그림의 파란색 사각형을 보면 알 수 있다.
 
사용자 삽입 이미지

 맨 왼쪽에는 Q-J , 오른쪽에는 6-5-4 가 와 있다. 맨 위의 그림(첫번째)에서 가운데의 클로버 4를 오른쪽으로 , 또 클로버 4를 뗀 후 뒤에 남은 하트 잭을 왼쪽으로 옮긴 것이다. 또한 위의 홈셀에는 에이스가 와 있는데, 컴퓨터가 알아서 옮겨주며 맨 아래줄에 위에 갈 것이 있으면 저절로 옮겨준다. 첫번째 사진에서 맨 오른쪽의 스페이드 에이스가 저절로 움직여 진 것이다.
  이제 슬슬 또다른 궁금증이 생긴다. 왜 왼쪽의 빈 4 칸은 무엇일까? 이는 카드의 자리를 바꾸거나 임시로 가져다 놓는 자리이다. 예를들어서 왼쪽에서 5번째 줄의 스페이드 4와 그 위의 다이아 A 가 보인다. 이 때, 스페이드 4 를 어디 치우면 다이아 A 가 맨 아래줄에 오게 되어서 위의 홈셀로 들어갈 수 있다. 그런데, 스페이드 4를 치울 마땅한 곳이 보이지 않는다. 이 때 스페이드 4 를 왼쪽의 4칸 중 하나로 치우면 된다. ( 스페이드 4를 더블클릭하면 된다 ) 그렇다면 아래 그림처럼
 
사용자 삽입 이미지
  움직여 지게 된다.
  마찬가지 방법으로 계속 왔다리 갔다리 하게 되면 다음과 같은 사람을 만날 수 있을 것이다.
사용자 삽입 이미지

  그럼 모두 즐겁게 프리셀을 즐기세요~