보드와 이기는 방법
격자는 가로 7열, 세로 6행으로 총 42칸입니다. 플레이어와 CPU는 번갈아 가며 한 번에 돌 하나씩 떨어뜨리며, 돌은 손가락으로 가리킨 자리에 절대 그대로 멈추지 않습니다. 선택한 열의 가장 낮은 빈칸으로 떨어집니다.
내 돌 4개가 한 줄로 이어지는 순간 승리합니다 — 세로 한 열, 가로 한 행, 또는 두 대각선 중 하나입니다. CPU도 같은 방식으로 승리합니다. 42칸이 모두 채워졌는데도 양쪽 다 4개를 만들지 못하면 그 판은 무승부입니다.
- 돌에는 글자도 숫자도 없습니다. 내 돌은 게임 타이틀 고유의 색이고 CPU의 돌은 이 게임의 두 번째 색이므로, 보드는 어떤 언어에서나 똑같이 읽힙니다.
- 승리를 만든 4개의 돌에는 테두리가 표시되고 나머지 돌은 모두 흐려지므로, 결과가 색에만 절대 의존하지 않습니다.
- 가장 최근에 떨어진 돌에는 작은 표시가 붙습니다. 화면을 계속 지켜보지 않아도 이 표시로 CPU가 어디에 두었는지 알 수 있습니다.
이 게임에는 점수도 없고 화면에 표시되는 시계도 없습니다. 판의 결과는 승, 패, 무 중 하나이며, 플레이 시간은 오직 통계를 위해 조용히 기록될 뿐입니다.
돌 떨어뜨리기
한 수는 곧 하나의 열이므로, 실제로 누르는 대상도 열입니다. 보드는 42개의 개별 칸이 아니라 세로로 긴 버튼 7개로 이루어져 있는 셈입니다.
- 열 안 어디를 눌러도 내 돌은 그 열의 가장 낮은 빈칸으로 떨어집니다.
- 가득 찬 열은 비활성화됩니다. 눌러도 무시되게 놔두는 대신 아예 꺼져 있으며, 눌러도 아무 일도 일어나지 않습니다 — 소리조차 나지 않습니다. 보드 전체가 눈앞에 다 보이므로, 여기서 나무랄 만한 실수란 없습니다.
- 떨어지는 거리가 길수록 낙하도 그만큼 미끄러지듯 이어집니다. 착지할 때 튕기지 않고, 파티클도 화면 흔들림도 없습니다.
- 앱 설정이나 시스템의 Reduced Motion(동작 줄이기) 기능을 켜면 낙하 효과가 사라지고, 돌은 도착한 자리에 바로 그려집니다.
- 스크린 리더는 한 열을 아래에서 위로, 돌이 쌓인 순서대로 읽어 줍니다.
착지 미리보기는 없습니다. 손가락이 열 위에 있는 동안에도 돌이 떨어질 칸에 그림자가 나타나지 않습니다. 한 열의 착지 칸은 가장 낮은 빈칸, 단 하나뿐이므로 미리보기가 있어도 열이 이미 보여 주는 것 이상은 알려 주지 못하며, 느린 휴대폰에서는 드래그가 이어지는 내내 그리는 데 시간만 잡아먹게 됩니다.
되돌리기, 그리고 힌트가 없는 이유
되돌리기는 무료이며 무제한이고, 첫 실행부터 작동합니다. 어떤 게임 기능도 절대 광고나 구매 뒤에 잠겨 있지 않습니다. 난이도는 잠금 해제로 얻는 것이 아니라, 처음부터 CPU 상대 3종을 모두 사용할 수 있습니다.
한 번 누르면 보드가 직전에 내가 결정을 내린 시점으로 돌아가며, 그때 내가 놓은 돌과 그에 대한 CPU의 응답이 함께 되돌아갑니다. CPU 차례 한가운데에 나를 절대 세워 두지 않습니다. 애초에 그런 위치는 내가 절대 아무것도 결정한 적이 없는 자리이기 때문입니다.
- 이것은 되돌리기이지, 무작위로 다시 결정하는 것이 아닙니다. CPU는 눈앞의 위치에 대응할 뿐이며, 두 열의 우열이 같을 때는 그 판의 시드와 그때까지 놓인 돌의 수로 동점을 가릅니다 — 운으로는 절대 정하지 않습니다. 되돌린 뒤 같은 열에 떨어뜨리면 정확히 똑같은 응답이 돌아옵니다.
- 이 결정성은 골든 테스트(golden test)로 보장되며, 업데이트 후에 같은 판을 다시 두어도 여전히 같은 방식으로 응답합니다.
- 힌트는 없습니다. 이 보드에는 숨겨진 것이 전혀 없으므로 힌트가 알려 줄 것도 없습니다 — 굳이 있다면 CPU 자신이 두고 싶은 열을 알려 주는 것뿐인데, 그것은 CPU가 자기 자리뿐 아니라 내 자리까지 대신 두는 셈입니다.
- 판이 끝나면 나타나는 화면은 끝난 위치로 돌아가는 방법이 아니라, 같은 상대와 새 판을 시작하는 선택지를 보여 줍니다. 비용은 들지 않고 곧바로 시작됩니다.
세 CPU 상대
쉬움, 보통, 어려움은 모두 같은 프로그램이며 위치를 판단하는 방식도 동일합니다. 달라지는 것은 오직 수를 두기 전에 얼마나 멀리 내다보는가뿐입니다.
- 탐색은 실제로 CPU 차례일 때만 실행됩니다 — 내가 돌을 떨어뜨린 직후, 또는 CPU에게 먼저 두게 한 판이 시작될 때입니다. 백그라운드에서 무언가 생각하고 있지 않으며, 내가 보드를 바라보고 있는 동안 계산이 진행되는 일도 없습니다.
- 차례가 넘어간 뒤 약 450ms가 지나면 CPU의 돌이 놓이며, 여기에 탐색에 걸리는 시간이 더해집니다. 이 멈춤은 CPU의 차례가 즉각적인 반응이 아니라 하나의 '차례'로 느껴지게 하기 위한 것이고, 탐색은 이 멈춤 도중이 아니라 끝난 뒤에 실행됩니다 — 그래서 탐색이 멈추는 한도가 중요해집니다.
- '어려움'은 컴퓨터가 낼 수 있는 최강의 상대가 되지 않도록 일부러 설계되었습니다. Connect Four는 이미 완전히 분석된 게임입니다 — 완벽하게 두면 먼저 두는 쪽이 이깁니다 — 그래서 끝까지 읽는 CPU가 있다면 아무도 절대 이길 수 없는 상대가 될 뿐입니다. 완벽한 수를 담은 오프닝 데이터베이스도 뒤에 두지 않았습니다.
- 전적은 상대별로 따로 기록됩니다: 플레이한 판 수, 승, 패, 무, 그리고 세 상대를 합친 총 플레이 시간입니다. 연속 기록은 세지도 표시하지도 않습니다.
| 상대 | 내다보는 수 | 보드에서의 의미 |
|---|---|---|
| 쉬움 | 1수 | 지금 당장 완성할 수 있는 승리는 챙기지만, 내 위협은 전혀 보지 못합니다. |
| 보통 | 4수 | 곧 닥칠 위협에는 대응하지만, 이중 위협에는 그대로 걸려듭니다. |
| 어려움 | 최대 8수 | 탐색 한도가 허락하는 만큼 깊이 파고든 뒤, 마지막으로 완료한 깊이에서 최선의 수를 둡니다. |
다른 판을 시작하려고 중단한 판은 패로 기록되지 않습니다. 시작한 순간 '플레이한 판'으로는 집계되지만, 실제로 끝까지 마친 판만 전적을 바꿉니다 — 통계는 나를 위협하는 것이 되어서는 안 됩니다.
누가 먼저 두는가, 그리고 두다 만 판
판을 시작하기 전에 내가 먼저 또는 CPU가 먼저 중에서 누가 먼저 둘지 선택합니다. 기본값은 내가 먼저 두는 쪽인데, 먼저 두는 자리가 더 유리하기 때문입니다 — 하지만 기본값은 규칙이 아니므로, 더 어려운 쪽을 원한다면 얼마든지 선택할 수 있습니다.
이 선택은 다음 판에만 적용됩니다. 이미 진행 중인 판에는 절대 영향을 주지 않습니다. 한 판은 시작할 때 정해진 순서 그대로 끝납니다.
- 보드는 플레이하는 동안 계속 저장되므로, 화면이나 앱을 벗어나도 안전합니다. 이 게임은 턴제이며, 저장된 위치는 떠났던 그대로 다시 열립니다.
- 판 저장 슬롯은 하나뿐입니다. 이미 두고 있던 상대를 다시 누르면 그 판을 이어서 하고, 다른 상대를 누르면 그 판을 대체하며 이때는 앱이 먼저 확인을 구합니다.
- CPU가 생각하는 도중에 나가더라도, 다시 불러온 판은 아직 CPU 차례임을 스스로 파악해 수를 둡니다. 차례 자체는 절대 저장되지 않으며, 보드에 놓인 돌과 먼저 둔 쪽으로부터 매번 다시 계산됩니다.
- 되돌리기 기록은 저장되지 않습니다. 다시 불러온 판은 그 위치를 만든 수순이 아니라, 보드에 놓인 위치 자체에서 시작합니다.
- 빈칸 위에 돌이 떠 있거나 이동 수가 놓인 돌의 개수와 맞지 않는 등, 게임이 신뢰할 수 없는 저장 데이터는 폐기됩니다. 이 경우 요청하지 않은 새 판으로 들어가는 대신 홈 화면으로 돌아갑니다.
보드 읽는 법
이 게임의 승부는 대부분 두 가지로 갈립니다: 중앙 열, 그리고 돌을 떨어뜨릴 때마다 상대에게 내주는 칸입니다.
- 중앙은 일찍 차지하세요. 7×6 보드에 존재하는 4연결 줄 69개 가운데 51개가 중앙 열을 지나가지만, 가장 바깥쪽 열 하나를 지나는 줄은 15개뿐입니다. CPU도 이 점에 동의합니다 — 중앙에 놓인 돌에는 가산점을 주고, 중앙부터 먼저 살핍니다.
- 돌을 하나 떨어뜨릴 때마다 그 바로 위 칸은 상대에게 넘어갑니다. 수를 두기 전에, 상대가 내 돌 위에 놓아서 무엇을 완성할 수 있는지 살펴보세요. 상대의 승리 칸 바로 아래를 채우는 것이야말로 이기고 있던 판을 가장 흔하게 놓치는 방식입니다.
- 동시에 두 가지 위협을 만들면 승리합니다. 막기는 한 칸밖에 막을 수 없으므로, 서로 다른 두 칸이 각각 내 줄을 완성시키는 수를 두면 그 판은 끝납니다. 바로 이 지점에서 '보통'이 무너집니다 — 눈앞의 위협에는 대응하지만 두 번째 위협이 다가오는 것은 보지 못합니다.
- 내 줄을 쌓기 전에 상대의 3개짜리 줄부터 막으세요. CPU가 한 줄에 3개를 만들었다면, CPU에게 필요한 칸을 먼저 차지하세요. 판이 이미 끝나 버리면 돌 하나만 남겨 뒀던 줄도 아무 의미가 없습니다.
- '어려움'을 상대할 때는 되돌리기를 도피가 아니라 수읽기 도구로 쓰세요. 같은 위치는 항상 같은 응답을 내놓으므로, 수를 물러 다른 열을 시도해 보면 그 수가 실제로 어디로 이어지는지 확인할 수 있습니다.
- 판이 일방적으로 느껴진다면 상대가 아니라 자리를 바꿔 보세요. 같은 난이도라도 CPU가 먼저 두는 쪽이 내가 먼저 둘 때보다 더 어려운 게임이 되며, 시도해 보는 데 아무 비용도 들지 않습니다.
자주 묻는 질문
다른 사람과 대전하거나 온라인으로 플레이할 수 있나요?
아니요. 모든 판은 내 기기 안에서 CPU를 상대로 진행됩니다 — 온라인 플레이도 2인용 모드도 없습니다. 레이팅도 순위도 없으며, 전적은 만들어진 기기 안에만 남습니다.
되돌리기를 하면 CPU가 다른 수를 두나요?
아니요. CPU는 눈앞의 위치에 대응할 뿐이며, 우열이 같은 열들 사이의 동점은 그 판의 시드와 그때까지 놓인 돌의 수로 가릅니다 — 흔들어 낼 만한 운의 여지는 전혀 없습니다. 보드를 되돌린 뒤 같은 열에 떨어뜨리면 똑같은 응답이 돌아옵니다. 되돌리기는 되돌리는 것이지, 무작위로 다시 결정하는 것이 아닙니다.
왜 힌트가 없나요?
힌트가 밝혀낼 만한 숨겨진 것이 아무것도 없기 때문입니다. 보드 전체가 다 보이므로, 힌트가 할 수 있는 일이라고는 CPU 자신이 둘 열을 알려 주는 것뿐인데, 그것은 CPU가 내 자리까지 대신 두는 셈입니다. 대신 도움이 되는 것은 되돌리기이며, 무료이며 무제한입니다.
'어려움'이 컴퓨터가 둘 수 있는 최강의 수준인가요?
아니요, 그리고 그것은 의도된 설계입니다. Connect Four는 이미 완전히 분석된 게임이므로, 끝까지 읽는 상대라면 절대 이길 수 없는 상대가 되고 맙니다. '어려움'은 최대 8수 앞까지 읽고, 정해진 탐색 한도에서 멈춘 뒤, 마지막으로 완료한 깊이에서 최선의 수를 둡니다.
판을 두다가 중간에 나가도 되나요?
네. 보드는 플레이하는 동안 계속 저장되며, 누구의 차례였는지를 포함해 떠났던 그대로 돌아옵니다. 다만 되돌리기 기록만은 남지 않으므로, 다시 불러온 판은 수순이 아니라 보드 위의 위치에서 시작합니다.
인터넷 연결이 필요합니까?
Android 앱은 연결 없이 첫 실행부터 플레이할 수 있으며, 모든 판은 기기 안에서 결정됩니다. 브라우저 버전은 페이지를 한 번 불러와야 하며, 그다음에는 게임 자체가 브라우저에서 실행됩니다.