世界の遊び工房Ryusei Games

ヒットアンドブロー

相手が決めた 4 桁の数を、予想のたびに返る「ヒット」と「ブロー」の数を手がかりに当てます。CPU と対戦するか、URL を送って友達と対戦できます。CPU が決めた数を 1 人で当てることもできます。

読み込んでいます…

遊び方・ルール

2 人がそれぞれ、0〜9 の数字を 4 つ並べた数を決めます。同じ数字は 2 回使えません。先頭が 0 の数(0123 など)も使えます。決めた数は相手に見せません。[1]

先手から交互に、相手の数を予想して 4 桁を出します。予想も、同じ数字を 2 回使わない 4 桁にします。

予想を出すと、相手はヒットとブローの数を答えます。予想の 4 つの数字のうち、相手の数と数字も位置も同じものの個数が「ヒット」、相手の数に含まれているが位置が違うものの個数が「ブロー」です。

答えが 1234、予想が 1325 のときの判定。実線で結んだ数字がヒット、点線で結んだ数字がブロー。

たとえば相手の数が 1234 で予想が 1325 なら、1 は位置も合っているのでヒット、3 と 2 は位置が違うのでブロー、5 は相手の数に無いので数えません。判定は 1 ヒット 2 ブローです。ヒットが 3 つで、4 つ目の数字も相手の数に含まれるなら、その数字は残った 1 つの位置にしか入らず、ヒットになります。そのため 3 ヒット 1 ブローという判定はありません。

相手の数をそのまま当てると、判定は 4 ヒットになります。当てるまでの回数が少ない方が勝ちで、同じ回数で当てたら引き分けです。そのため、先手が当てたときも後手には同じ回の予想が 1 回残り、後手も当てたら引き分けになります。このページでは、20 回ずつ予想しても決まらなければ引き分けにしています。[2]

「1 人で当てる」では、CPU が決めた数を 30 回までに当てます。

このページでの操作

対局の始め方

遊び方は、盤の右(画面の幅が狭いときは盤の下)のボタンで選びます。「CPU と対戦」の初級・中級・上級のどれかを押すと、あなたが先手で始まります。「後手で始める(中級)」を押すと、中級の CPU が先手になります。「1 人で当てる(CPU が出題)」では、CPU が決めた数を当てます。「この端末で 2 人で遊ぶ」では、1 台の端末を 2 人で交互に使います。

「友達と対戦(URL を送る)」を押すとルームができ、URL が表示されます。「URL をコピー」(対応する端末では「共有」も使えます)で相手に送ってください。相手が URL を開いて「参加する」を押すと、相手が後手になって対局が始まります。相手が来ないときは「待たずに CPU と遊ぶ」で CPU 戦に切り替えられます。対局中に相手の接続が 2 分切れたままのときは、「CPU と新しく対局する(今の対局は終わります)」を押せます。ルームは、誰も接続していない状態が 30 分続くか、作ってから 24 時間たつと消えます。

CPU 戦、この端末で 2 人で遊ぶとき、1 人で当てるときは、「もう一度」で同じ遊び方の対局を最初から始めます。友達との対戦では、対局が終わった後に「先手と後手を入れ替えてもう一局」で次の対局を始めます。どの遊び方でも、「遊び方を選び直す」で遊び方の選択に戻り、「投了」(1 人で当てるときは「あきらめて答えを見る」)で対局を終えます。「1 手戻す」は CPU 戦とこの端末で 2 人で遊ぶときだけ使え、戻せるのは数を決める段階までです。予想を出して判定が出た後は、それより前に戻せません。

数字の入力

数を決めるときと予想するときは、4 桁の数字を 1 つずつ入力して「決定」を押します。入力には、盤の手前に並んだ札(0〜9・1 文字消す・決定)か、盤の右(画面の幅が狭いときは盤の下)のボタンを使います。盤の札で入力した数字も、ボタンの上の欄に表示されます。「1 文字消す」は最後に入力した数字を消します。数を決めるときは「おまかせ」で無作為な数が入ります。ボタンを選んでいる間は、キーボードの数字キーと Backspace も使えます。

この端末で 2 人で遊ぶときは、先手、後手の順に数を決めます。入力した数字は ● で隠れ、目の形のボタンで表示と非表示を切り替えられます。数を決めている間、もう 1 人は画面を見ないでください。数が決まったら、先手から交互に予想を入力します。

盤の見かた

盤の左の列があなたの予想、右の列が相手の予想です(この端末で 2 人で遊ぶときは、左が先手、右が後手)。予想は奥から順に 1 行ずつ並び、盤には 8 回分まで並びます。9 回目の予想からは古い行から消えるので、すべての予想と判定は、ボタンの下の「予想と判定」の表で確かめてください。

盤の予想の行(答えが 1234 で、1 回目に 1325 と予想したとき)。左から回の番号、予想した数、判定の札。

各行の右の札が判定です。札の左の金色の部分の数字がヒットの数(H)、右の部分の数字がブローの数(B)です。4 ヒットで当てた行は金色の枠で囲まれます。

列の上の台には、その列で当てる数の札が置かれます。相手の数は伏せてあり、対局が終わると開きます。あなたが決めた数は、相手の列の上の台に表を向けて置かれます(この端末で 2 人で遊ぶときは、どちらの数も伏せてあります)。1 人で当てるときは列が 1 つで、上の台に CPU が決めた数が伏せてあります。

盤の右上の「斜めから」「真上から」で視点を切り替えられます。盤はドラッグで回せます。マウスのホイールや 2 本の指の操作で拡大・縮小できます。

勝つためのコツ

1 回目の予想では、判定ごとに残る候補(答えになりうる数)の数が、どの数を出しても同じです。そのため、最初の予想に有利・不利はありません。全部で 5,040 通りある数のうち、残る候補がいちばん多いのは 0 ヒット 1 ブローのときで 1,440 通り、0 ヒット 0 ブローなら 360 通りです。

2 回目に、1 回目と数字が重ならない数(1 回目が 0123 なら 4567 など)を出すと、2 回のヒットとブローの合計から、答えの数字が 0〜3・4〜7・8〜9 にいくつずつあるかが分かります。

ヒットとブローの合計は、予想の数字のうち答えに含まれている数字の個数です。含まれている数字が分かったら、その数字の位置を入れ替えた予想で、どの桁に入るかを確かめます。

候補の中から予想を選ぶと、毎回、その予想で当たる可能性があります。たとえば 1 回目の 0123 が 0 ヒット 0 ブローなら、0〜3 は答えに無いので、候補は 4〜9 の 6 つの数字から作る 360 通りです。このページの CPU の中級は、候補から無作為に選ぶ方法で、平均 約 5.5 回で当てます。

候補が多いうちは、候補でない数を出した方が、次の判定で候補を細かく分けられることがあります。当てるまでの回数の平均が最も少ない手順でも、1 回目の 0123 が 0 ヒット 3 ブローだったときの 2 回目は、候補ではない 1435 です。[2]

対戦で相手が次の回に当てそうなときや、後手で最後の 1 回の予想を出すときは、候補の中から選びます。候補でない数は、その回に当たることがありません。

ヒットアンドブローの起源と歴史

ヒットアンドブローのルールは、英語で Bulls and Cows(雄牛と雌牛)と呼ばれる、紙と鉛筆で遊ぶ数当てと同じです。Bulls and Cows は、Cows and Bulls、Hit & Blow、Cow & Bull などの名前でも呼ばれてきました。英語ではヒットを bull、ブローを cow と呼びます。4 桁で遊ぶことが多いものの、ほかの桁数でも遊べます。[1][6]

初期のコンピュータで遊ぶ版は、MOO の名前で広まりました。英国のケンブリッジ大学では、1970 年の夏にはすでに MOO が人気で、遊んだ人の成績を並べた順位表も作られていました。この年の夏、ケンブリッジ大学の John Larmouth が米国のマサチューセッツ工科大学(MIT)を訪れ、MIT の Jerrold Grochow と、Multics(MIT で使われていた、多くの利用者が 1 台のコンピュータを同時に使う OS)で動く MOO を作りました。Larmouth が MIT を離れた後、Grochow が Multics の利用者なら誰でも遊べるようにして順位表も作ると、2 か月で遊んだ人は 75 人を超え、対局はおよそ 1,000 回になりました。[3][6]

米国のベル研究所では、Unix を作った Ken Thompson が、ケンブリッジ大学から伝わった MOO について、当て方の手順を調べました。Dennis Ritchie の回想によると、その結果は大きなノートにまとめられ、最初のページには「1234 を出す」とあり、判定の数に応じて次の予想が書かれたページへ進む作りでした。1971 年 11 月の日付がある Unix の最初の説明書にも、moo が「イングランドから持ち込まれた数当て遊び」として載っています。[4][5]

何回で当てられるかは、コンピュータで調べられています。1996 年に田中哲朗氏がすべての場合を調べ、判定に応じて次の予想が決まっている手順のうち、当てるまでの回数の平均が最も少ない手順を求めました。その平均は 5.213 回(5,040 通りの数の合計 26,274 回)で、この手順ではどの数も 7 回以内に当たります。同じ研究では、決まった手順のうち 2 人で対戦するときに最も強いものも求めています。その手順の平均は 5.221 回で最少ではありませんが、平均が最少の手順と対戦すると勝率は 50.2% です(引き分けは 0.5 勝として数える)。[1][2]

出典

  1. 田中哲朗『数当てゲームMOOの最小質問戦略と最強戦略』(第 3 回ゲームプログラミングワークショップ報告集、1996 年)(新しいタブで開きます)
  2. Tetsuro Tanaka『An optimal MOO strategy』(arXiv、2022 年。1996 年の論文の英訳)(新しいタブで開きます)
  3. Jerrold M. Grochow『MOO in Multics』(Software—Practice and Experience 2 巻、1972 年)(新しいタブで開きます)
  4. Dennis Ritchie『Ken, Unix and Games』(ICGA Journal 24 巻 2 号、2001 年)(新しいタブで開きます)
  5. The Unix Heritage Society『V1/man/man6/moo.6』(Unix 第 1 版の説明書、1971 年)(新しいタブで開きます)
  6. Wikipedia 英語版『Bulls and cows』(2026 年 9 月 28 日に閲覧)(新しいタブで開きます)

よくある質問

ヒットとブローはどう数えますか?

予想の数字のうち、答えと数字も位置も合っているものがヒット、数字は答えに含まれているが位置が違うものがブローです。答えが 1234 で予想が 1325 なら、1 がヒット、3 と 2 がブローで、判定は 1 ヒット 2 ブローです。5 は答えに含まれないので数えません。

平均で何回あれば当てられますか?

判定に応じて次の予想が決まっている手順のうち、回数の平均が最も少ないものは平均 5.213 回で、どの数も 7 回以内に当たります(1996 年の田中哲朗氏の計算)。このページの CPU は、上級が平均 約 5.22 回、中級が約 5.5 回、初級が約 8.8 回で当てます。

1 人で遊べますか?

遊べます。「1 人で当てる(CPU が出題)」を選ぶと、CPU が決めた数を 30 回までに当てます。30 回で当てられなければ、答えが表示されます。途中で「あきらめて答えを見る」を押すと、答えが盤に表示されます。

同じ数字を 2 回使った数や、0 で始まる数は使えますか?

同じ数字を 2 回使った数は使えません。数を決めるときも予想するときも同じです。0 で始まる数(0123 など)は使えます。使える数は、0〜9 から異なる 4 つの数字を選んで並べた 5,040 通りです。

友達と対戦するとき、自分の数は相手に見えますか?

見えません。URL を送って友達と対戦するときは、判定を対戦サーバーが計算し、相手の画面にはあなたの数を隠した状態だけが届きます。数は対局が終わると両方の画面で開きます。この端末で 2 人で遊ぶときは、数を決める間、入力した数字が ● で隠れます。CPU 戦でも、CPU はあなたの数を見ずに、判定だけから予想します。

3 桁や 5 桁で遊べますか?

このページでは 4 桁だけです。紙と鉛筆で遊ぶときは、3 桁や 5 桁など、ほかの桁数でも同じルールで遊べます。

対局の統計の送信

対局の始まりと終わり、友達対戦の接続の成否、3D 表示の失敗などを、このサイトのサーバーへ送っています。どのゲームが最後まで遊ばれているか、どの端末で表示や接続に失敗しているかを調べて、不具合の修正とゲームの改良に使います。送らない場合は、下のスイッチを切ってください。

送信する情報

ゲームの種類、遊び方(CPU 戦・この端末で交代・1 人用・友達対戦)、CPU の強さ、対局の設定(五目並べとチェッカーのルール・ルドーとダイヤモンドゲームの人数)、結果、手数、対局時間の区分、友達対戦の接続の成否と再接続の回数、3D 表示の失敗と描画の速さの区分、端末の種類(スマホかどうか・メモリとコア数の区分)、ブラウザと OS の種類。

送信しない情報

ルーム ID、打った手と盤面、ヒットアンドブローの数、IP アドレス、GPU の機種名。送信先はこのサイトのサーバーだけで、外部のサービスには渡しません。記録は 30 日で削除します。

記録の扱いと、広告・アクセス解析による外部送信についてはプライバシーポリシーに書いています。