프리셀
1. 개요
Freecell
플레잉 카드로 하는 솔리테어의 일종. 아마 클론다이크 다음으로 유명한 솔리테어일 것이다. 왜냐하면 똑같이 Windows 번들 게임이지만 프리셀의 규칙이 더 까다롭고 윈도우 프리셀 프로그램이 조금 비직관적인 데가 있어서 이해하기 어렵기 때문이다. 그나마 이 게임은 이름이라도 똑바로 알려졌으니 좀 더 사정이 나은 듯.
2. 세팅
- 조커를 제외한 52장의 플레잉 카드 한 벌을 사용한다.
- 카드를 섞는다.
- 8개의 줄 스택에 첫 4개는 7장, 나머지 4개에는 6장씩 카드를 올린다.
- 모든 카드가 보이게 뒤집는다.
- 줄 스택 위 왼쪽 공간에 4개의 프리셀을 만들고 오른쪽 공간에는 4개의 홈셀을 만든다.
[image]
프리셀 게임 중 클리어할 수 없는 것으로 가장 유명한 11982번 프리셀을 치트로 클리어하는 영상. 치트 없이 정상적으로 클리어하는 방법은 없다. 알고리즘을 만들어서 시도한 사람도 있었으나 실패로 끝났다고 한다.
3. 플레이
'''※ 이론상 카드는 한 번에 한 장만 옮길 수 있다.''' 윈도우 프리셀 게임에서 다수의 카드를 한 번에 옮길 수 있는 건 카드가 프리셀에 올라갔다 내려오는 동작을 생략하고 보여주기 때문이다. 애니메이션 기능이 있긴 한데 요즘 컴퓨터가 너무 빠른건지 기능 넣기가 귀찮은건지 7 이상은 보이지 않는다...
3.1. 홈셀
※ 클론다이크의 짝패 스택을 프리셀에서는 홈셀이라 부른다.
- 각 셀에 에이스부터 킹까지 순서대로 쌓아 올릴 수 있다. 단 순서를 빼먹을 수 없고 한 스택에는 동일 문양의 카드들만 들어갈 수 있다.
- 모든 카드를 쌓아 올리면 승리한다.
- 카드를 다시 줄 스택으로 내려야 한다 해도 내릴 수 없다.
- 특정한 경우에 카드가 자동으로 올라갈 때가 있다. 숫자가 작은 반대색의 카드가 게임 영역에 없으면 그 카드는 필요 없기 때문에 자동으로 홈셀에 등록된다.
3.2. 줄 스택
※ 줄 스택이 덱의 역할을 겸하고 있다. 모든 프리셀 게임은 줄 스택의 배열에 따라 구분할 수 있다.
- 8개의 줄 위에서 카드를 정리할 수 있다. 단
- 위에서 아래로 역순(카운트다운)으로 쌓아 올려야 한다. K-Q-J-10-9-··· 순으로.
- 각 층마다 카드의 색깔이 바뀌어야 한다. 빨강 - 검정 - 빨강 - 검정 - ··· 순으로.
- 무작위로 정렬되어 있는 카드를 옮긴 후에는 제자리로 옮길 수 없다. 당연한 규칙.
- 줄 스택에서 카드를 옮길 수 있으며 한 번에 옮길 수 있는 카드의 장수는 빈 프리셀 개수+빈 줄 스택 개수+1이다. 단 옮길 곳에서 규칙을 맞춰 주어야 한다. 다시 말하지만, 이론상 프리셀에서는 한 번에 한 장의 카드만 옮길 수 있다. 덩어리로 옮길 수 있는 것은 컴퓨터 프로그램이 중간에 프리셀로 옮기고 빈 줄 스택으로 옮기는 잡다한 동작을 생략해 주기 때문이다.
- 한 줄 스택을 모두 소비했다면 어떤 카드라도 그 자리에 대신 올릴 수 있다. 그 위에 다른 카드를 계속 올릴 수 있기 때문에 빈 줄 스택은 프리셀 이상의 가치를 지닌다.
3.3. 프리셀
- 프리셀에는 어떤 카드라도 임시로 저장해 둘 수 있다. 이렇게 저장된 카드는 필요할 때 다시 꺼내 쓸 수 있다.
- 절대로 프리셀을 남용하지 말 것. 함부로 프리셀에 카드를 올려대다간 나중에(.. 보단 곧) 카드를 옮기지 못하고 패가망신할 수 있다.
4. 승패의 결정 방법
[image]
홈셀에 다 올리면 승리,
[image]
그렇지 못하면 패배이다. 윈도우즈 프리셀에서는 따로 연승과 승률을 기록해 주고 있다.
5. 공략
- 위의 빈 칸을 항상 파악하고 몇 장을 옮길 수 있는지 항상 계산해둔다.[1]
- 핵심 카드를 꺼낸다.[2]
- A를 공략할때 그 모양의 2가 꺼내기 어려운 곳에 있다면 그 A는 크게 신경쓰지 않아도 된다.[3]
- A를 공략할 때 같은 색 2개보다는 검정, 빨강 하나씩 공략한다.[4]
- A 위에 차례로 올릴 때 아직 활용할 수 있는 숫자라면 두 번 생각한 뒤 쌓는다.[5]
- 한 줄의 카드가 모두 쌓을 수 있는 경우인데 뒤죽박죽이라면 반드시 정리한다. 프리셀의 여유가 없다면 확보한뒤 에는 반드시 이 곳을 우선한다.[6]
6. 기타
6.1. 프리셀 프로젝트
윈도우즈용 프리셀은 게임 선택 메뉴에 들어가서 게임 번호를 선택할 수가 있다. 윈도우 3.1~2000 시절에는 1~32,000까지 입력할 수 있지만 XP부터는 1,000,000까지 가능하다. 다만 XP 이후에도 게임 번호를 랜덤으로 하면 32,767까지밖에 안 나오는데 이는 게임 번호만 늘리고 랜덤 선택을 안 고친 탓이다. 2의 15제곱이 32768인 것을 생각하면 비트(bit)의 문제일지도 모른다.
95년경 유즈넷 시절부터 온라인상에서 '프리셀 프로젝트'라는 32000개의 게임을 다 풀어보자!! 라는 막장 목표를 가진 그룹이 데이브 링(Dave Ring)이라는 당시 대학생에 의해 이끌어져가고 있었다. 이들에 의하면 풀리지 않는 게임은 11982번 한 개 뿐이다. 나머지는 모두 가능한 듯.
그 외에도 지금까지 아무도 풀 수 없었던 게임은 11982, 146692, 186216, 455889, 495505, 512118, 517776, 781948번이 있다.
아마도 국내에 '프리셀 프로젝트'에 대해 맨 처음 기사로 소개되었을 딴지일보의 기사를 소개한다.
보러가기
아니 지금도 뛰는 사람들이 있다. 그것도 한국에서. 프리셀 프로젝트
자신이 프리셀을 좋아한다고 생각하면 '''617''', '''1941''', '''10692''' 3개는 꼭 도전해보자. 만일 눈치 볼 일 없는 백수라면 며칠을 컴퓨터 앞에 앉아서 끙끙 댈 수 있을 것이다. 만일 저 세 가지 스테이지를 각각 한 시간 안에 풀 수 있다면 인류를 위해서 그 머리를 쓰라고 반 농담으로 말한다.
문제 '''11982'''번은 깰 수 없는 것으로 많이 알려져 있다. 사실 XP이하에서는 버그를 이용해 한 수를 둔 뒤 그 게임을 포기하고 다시 시작한 뒤 실행 취소를 하면 풀 수 있다. #1 #2
7239번 문제의 경우 어떻게 플레이하느냐에 따라 '''홈셀에 52장을 단숨에 자동으로 채우는''' 묘기가 가능하다.
29596번은 무려 '''최소 이동 횟수가 53회'''이다.
만들 수 있는 게임의 수, 즉 52장의 카드를 임의의 순서로 배치할 수 있는 경우의 수는 52! = 약 8.066×1067가지이다. 다만, 줄 스택의 순서와 카드의 문양 등만 바뀐 경우 "사실상 같은 판"이라고 볼 수 있으므로, 줄 순서와 카드 문양만 바뀐 경우를 제외하면 실질적으로는 약 1.75×1064가지의 게임이 있다.참고
6.2. 이스터 에그
프리셀 게임 번호에 -1, -2를 입력할 수 있는데 이건 이스터 에그로 풀 수 없는 게임이다. Vista에서 -3, -4번이 추가되었는데 이건 -1, -2번과는 달리 지고 싶어도 질 수가 없는 판이다. 그냥 A카드를 홈 덱에 하나 놓으면 알아서 해결된다.
6.3. 기타
프리셀은 푸는 게 어렵지 '''문제 하나 만드는 건 쉽다'''. 우선 홈셀 4개를 A~K 순서로 꽉 채우고 (그러니까 올 클리어 상태로) 아무거나 맨 윗장부터 스택에다 놓거나 처음엔 프리셀에 놨다가 나중에 스택에다 놓는 식으로.......즉 '''프리셀 클리어의 정 반대 순서대로''' 마구 놓으면 된다. 이렇게 문제가 만들어지면 해법은 만들어진 순서를 그대로 역순으로 따르면 되니 당연히 존재할 수 밖에 없다.
윈도우즈의 도움말은 “'''증명되지는 않았지만''' 여기에서 플레이하는 게임은 모두 해결법이 있습니다” 라고 쓰여 있지만 상기했듯 안타깝게도 반례가 있다. 자기들도 반례가 있단 걸 확실히 인지하고 있는 게, 그런 케이스들을 이스터에그로 넣어놨다. 이는 윈도우 버전 프리셀의 문제 생성 알고리즘이 클리어 상태에서 역순으로 만들어 나가는 방식이 아니라 카드를 그냥 무작위로 놓는 방식이기 때문. 문제 생성 알고리즘의 코드가 공개되어 있기 때문에 윈도우즈 버전 프리셀과 같은 방식으로 더 많은 문제들을 만들 수 있는 프로그램도 나와 있다.
마우스질이 정말 귀찮은 경우 숫자키로도 플레이할 수 있다. 홈셀은 9, 프리셀은 0, 쌓인 카드들은 왼쪽부터 1, 2, 3, 4, 5, 6, 7, 8로 각각 선택. 열로 옮기기/카드 한 장만 옮기기는 C/S, 그리고 실행 취소는 F10이다(윈도우 7에서는 ctrl+z).
윈도우 7 버전의 실행 취소는 처음부터 끝까지 할 수 있기 때문에 프리셀의 난이도가 대폭 하락했다. 중간 정도의 실력으로도 100연승 이상을 무난하게 찍을 정도.[7] 게다가 실행 취소로 맨 처음까지 되돌아간 뒤 종료하면 승/패 판정 없이 종료된다. 아무리 해도 못 풀겠으면 이 방법으로 패배 기록을 남기지 않을 수 있다.
윈도우즈 프리셀의 연승 기록은 작업 관리자에서 프리셀 프로세스를 직접 강제 종료해버리면 진행 중이던 게임의 기록이 남지 않는다. 이를 이용하여 기록상으로만 엄청난 연승을 기록할 수도 있다.
진짜 카드덱을 이용해서 아날로그식으로 할 수도 있다.
[image]
[image]
7. 참고 자료
[1] 비어있는 줄 스택과 프리셀의 개수가 각각 m, n개일 때 한 번에 움직일 수 있는 카드의 최대 장수는 (m+1)(n+1)장이다.[2] 어찌보면 A를 찾는 것보다 더 중요하다. 물론 A가 핵심 카드가 되는 경우가 많지만. 각 줄의 위에 3장정도를 살펴보면 대부분 쌓을 수 있는 카드들이지만 중간중간에 빠진 카드들이 있다. 이것이 이른바 핵심 카드라고 하는데 아무튼 이 카드들을 먼저 꺼내야 한다.[3] 그 위에 2,3...을 올리기가 어렵다면 그 A는 있으나마나한 거다. 무리해서 A를 꺼내기 위해 프리셀을 채우지 않아도 된다.[4] A를 공략할 때 한 가지 색이 아닌 두 가지 색이어야 한다. 왜냐하면 같은 카드가 2장 존재하는데 둘 중 하나는 A 위에 차례로 쌓고 나머지 하나를 이용해서 쌓으면 되기 때문이다. 만약 같은 색 A라면 다른 색의 2,3,4 등이 처리가 어려워지므로 이미 A를 올려두었다 해도 다음 카드를 쌓을 수 없다.[5] 클론다이크와는 다르게 A위에 쌓을때는 다시 꺼내올 수 없기 때문에 신중히 생각해야 한다. 특히 카드를 옮길 공간이 많지 않은 초반에는 정말로. 예를 들어 프리셀을 아끼려고 빨간 3을 A위에 쌓았다가 나중에 검은 2 처리가 곤란해지는 수가 있다.[6] 검은 K,빨간 Q, 검은 J, 빨간 10이 거꾸로 쌓여있는 줄이 있을 때 이 줄을 먼저 정리해 줘야 한다는 말이다. 4장을 다 프리셀에 올린 다음 K부터 다시 쌓아줘야 한다. 별 것 아닌 것 같지만 프리셀의 여유가 없을 때 안 해두면 나중에는 역순으로 깔려있는 맨 밑의 카드를 꺼낼 수 없어 질 수 있다. 프리셀을 차지하지 않으니까 여유있을 때 미리 해야 한다.[7] 패배 판정이 떠버려 실행취소가 불가능한 경우가 있다.