オセロ 3.2 勝てるヒント – 1番を選び続ければ「強い」にも勝てるオセロ

おすすめの手に1・2・3の順位をつける「オセロ 3.1 初心者用」を作り直し、1番を選び続ければ難易度「強い」のCOMにも勝てるようにしたバージョンです。

なぜ作り直したのか
3.1 では、1番を選び続けても「強い」のCOMにはほとんど勝てませんでした。ヒントがCOMより浅くしか読めていなかったからです。
「強い」のCOMは、3秒の持ち時間で8〜11手先まで読みます。それに対して 3.1 のヒントは7手先まで。相手より浅い読みでは、ヒントどおりに打っても読み負けてしまいます。
ヒントをもっと深く読ませればいいのですが、3.1 の仕組みのままでは1手に何十秒もかかってしまいます。そこで、ヒントの計算を一から作り直しました。

画面の見方
- 数字つきで点滅する白い丸 — おすすめの手。1がいちばん有力
- 小さな白い点 — そのほかの置ける場所
- オレンジの破線の枠 — いまCOMが置ける場所
ヒントを計算しているあいだは、画面の右上に「おすすめを探しています…」と表示されます。
どうやって勝てる手を見つけているのか
1. 計算を速くして、COMより深く読む
盤面を64個のマスの並びとして扱う代わりに、64ビットの数として扱う方式(ビットボード)に書き換えました。「どこに置けるか」を1マスずつ調べる代わりに、8方向をまとめて一度に計算できます。
盤面の良し悪しのつけ方はCOMとまったく同じまま、1秒間に調べられる局面の数が10倍以上になりました。調べる順番も工夫して、これで「強い」のヒントは12手先まで読めます。COMの8〜11手先を上回ります。
2. 終盤の手前で、勝ち負けを最後まで読み切る
実は、深く読むだけでは足りませんでした。12手先まで読むようにしても、負ける対局が残ったのです。
負けた対局を1手ずつ調べると、残り20マスの時点で、黒が勝てる手がありました。ところがヒントは12手先で読むのをやめていたので、その手を見抜けず、別の手を1番にしていました。COMは残り16マスから最後までの読み切りに入るので、そこまでに勝ちの形に入っていないと、まず取り返せません。
そこで、残りが20マス以下になったら、石の数の差は求めずに「勝ちか・負けか・引き分けか」だけを最後まで読み切るようにしました。勝てる手が見つかればそれを1番にします。差まで求めるより何十倍も速く、問題の局面では2秒ほどで勝ちの手を見つけられました。
いったん勝ちの形に入れば、そのあとも勝てる手が必ずあります。読み切りが時間内に終わるかぎり、1番を選び続ければ最後まで勝ちが保たれます。
本当に勝てるのか試してみた
ヒントの1番を選び続けて、「強い」のCOMと対局させました。COMは持ち時間の中でどこまで読むかが決まるので、パソコンが速いほど強くなります。そこでCOMの持ち時間を変えて、速いパソコンや遅いパソコンでの対局を再現しました。
| COMの持ち時間 | 結果 |
|---|---|
| 1.5秒 | 黒49 − 白15 で勝ち |
| 2.0秒 | 黒39 − 白25 で勝ち |
| 2.5秒 | 黒38 − 白26 で勝ち |
| 3.0秒(通常) | 黒37 − 白27 で勝ち |
| 3.5秒 | 黒46 − 白18 で勝ち |
| 4.0秒 | 黒46 − 白18 で勝ち |
| 4.5秒 | 黒40 − 白24 で勝ち |
| 5.0秒 | 黒40 − 白24 で勝ち |
| 6.0秒 | 黒40 − 白24 で勝ち |
9通りすべてで勝ちました。「普通」では、途中でわざと2番や3番を選んだ場合も含めて7局すべて勝ちです。
気をつけること
- 1番以外を選ぶと、勝てるとはかぎりません。 「強い」で途中に一度だけ2番や3番を選んだ6局は、4勝1分1敗でした。負けた1局は、2番を選んだ時点で中盤のうちに勝負が決まっていました
- 「強い」はヒントが出るまで数秒かかります。 1手あたり平均1〜2秒、長いときは10秒ほどです(パソコンでの実測)。スマートフォンではさらに時間がかかることがあります
- オセロは、おたがいが完璧に打つと引き分けになると考えられているゲームです。ここで「勝てる」というのは、このCOMに対して勝てるという意味です
使い方のおすすめ
まずは1番だけで「強い」に勝ってみる
いちばん強いCOMに勝つ体験ができます。どんな手で押し切っているのか、盤面の変化を見てみてください。
2番・3番を試して「待った」で戻す
あえて別の手を選んでみて、「待った」で戻してやり直すと、1番との違いが比べられます。2番を選ぶとそのまま負けてしまう局面があるのも分かります。
遊ぶ
インストール不要、ブラウザだけで遊べます。
ほかのバージョン
オセロ 3.1 初心者用(順位つき) / オセロ 3.0 初心者用(順位なし) / オセロ 4.0 探索の可視化 / 通常版のオセロ