1 소개
내기삼아 할 수 있는 게임 내지 초보 프로그래머들의 난관 중 하나.
초보 프로그래머들이 대체로 처음 만들게 되는 '제대로 된' 프로그램 중 하나로, 이름이 숫자야구 게임이라고 해서 뭔가 재밌는 걸 상상했다가 어찌어찌 프로그래밍은 하지만 실행한 후에 크게 좌절하는 경우가 있다(...). 난수 생성과 문자열 입출력, 데이터 중복 검사, 문자열 비교 같은 걸 쓰기 때문에 비교적 간단해도 쓸 건 다 쓰는 예제다 보니까 널리 사용되고 있다. 원제는 bulls and cows라는 게임이다. 프로그래밍 예제를 보려면 이쪽으로.
2 게임 방식
야구이니만큼 야구 용어가 등장한다. 또한 "9회말 2아웃"에 근거해 숫자 제시 횟수를 9번까지 제한하기도 하지만, 잘 하는 사람의 경우 그 전에 끝난다.
각자 3/4자리[1]의 숫자를 임의로 정한 뒤, 서로에게 3/4자리의 숫자를 불러서 결과를 확인한다. 그리고 그 결과를 토대로 상대가 적은 숫자를 예상한 뒤 맞힌다.
- 사용되는 숫자는 0에서 9까지이다.
- 숫자는 맞지만 위치가 틀렸을 때는 볼.
- 숫자와 위치가 전부 맞으면 스트라이크.
- 숫자와 위치가 전부 틀리면 아웃. "틀렸다"는 게 중요하다.
- 물론 무엇이 볼이고 스트라이크인지는 알려주지 않는다.
- 이게임을 아예 모르는 사람을 위해서 하는말인데, 두 숫자가 중복되면 경우의수가 많아져서 그런지 중복숫자를 사용하지 않는것 같다.
예시를 보자면 다음과 같다.
상대가 예상한 숫자가 "320"이라 치자. 아래 표에선 이해를 돕기 위해 숫자에 배경색을 입혀 놓았다.
회차 | 숫자 | 판정 | ||
1 | 6 | 1 | 4 | 아웃 |
2 | 5 | 7 | 3 | 0S 1B |
3 | 8 | 3 | 0 | 1S 1B |
4 | 3 | 0 | 2 | 1S 2B |
5 | 3 | 2 | 0 | 3S 0B |
각 회차별로 설명하자면,
- 614 - 들어맞는 숫자가 전혀 없으므로 아웃. 말 그대로 1, 4, 6을 예상 숫자에서 아예 "아웃"시킬 수 있다. 즉 현재 예상숫자는 0, 2, 3, 5, 7, 8, 9.
- 2. 573 - 3이 있지만 위치가 다르므로 1볼. 물론 게임상으론 어떤 숫자가 맞는지 알 수 없기에 가장 난감하다.
- 3. 830 - 0이 있고 위치가 맞으며, 3이 있지만 위치가 다르므로 1스트라이크 1볼.
- 4. 302 - 숫자는 전부 맞지만 위치는 3만 맞고 나머지 둘은 다르므로 1스트라이크 2볼.
- 5. 320 - 전부 맞으므로 승리.
4자리일 경우에도 마찬가지이다.
3 기타
- 실제 야구나 비디오게임 야구와는 전혀 관계없다.
- 대한민국의 미디어에 정식으로 소개된 것은 퍼즐특급열차의 퍼즐스트라이크가 최초이며, 그 뒤로 한참 동안 TV에서 안 보이다가 무한도전에서 이 게임을 기본 룰로 추격전 게임을 조합한 특집을 방송에서 선보였다. 무한도전 숫자야구 특집 참조. 일본에서는 상기 표기한 누메론이 매주 일요일에 방송 중.
- 슬리핑 독스의 비밀번호 해킹방식도 단순화된 숫자야구다.
- 폴아웃 3나 폴아웃: 뉴 베가스에 등장하는 단말기 해킹도 이 숫자야구의 변형판이다. 숫자가 아닌 알파벳 단어를 대상으로 하는 대신 위치와 문자가 전부 들어맞아야 맞다고 처리하는 스트라이크만 존재한다. 볼은 아웃으로 처리한다.
- 더 지니어스:룰 브레이커/12화에 두번째로 사용된 게임, "진실탐지기"가 숫자야구와 거의 흡사하다.
- RPG Maker Ace로 만든 숫자야구 게임이 있는데 2인용이 아닌 1인용 게임으로 컴퓨터가 생각하는 숫자를 9번 안에 맞혀야 한다. 다운링크
- 잘 생각해보면 알겠지만 3 스트라이크 1 볼은 나올 수 없다. 맞혀야 하는 숫자가 전부 들어가는 상태에서 3개의 자리를 맞혔다면 나머지 하나는 무조건 자리가 정해지기 때문.
- ↑ 이론상 그 이상도 가능하지만 "포볼" 때문인지 5자리 이상은 잘 되지 않는다. 애초에 거기까지 가면 머리가 아프기도 하고(…)