Claudeに、まるばつを作ってもらいました。3×3の、あの〇×ゲームです。
ひとつだけ注文をつけました。難易度を3段階にしてほしい、と。かんたん、ふつう、むずかしい。
出てきたものを、まず「むずかしい」で試しました。
勝てません。
何度やっても引き分けか、負け。おかしいと思って、自動で対戦させてみました。指し方を変えた3種類の相手に、それぞれ3000回。合計9000戦で、人間側の勝ちはゼロでした。
〇×は、すでに終わっているゲーム
調べてみたら、そういうゲームでした。
〇×の対局は、全部で255,168通りしかありません。指し方の組み合わせを最初から最後まで数え上げた数です。先手が勝つのが131,184通り、後手が勝つのが77,904通り、引き分けが46,080通り。これで全部です。
そして、この中から「双方が最善を尽くしたとき」の道だけを拾うと、行き着く先はひとつしかありません。引き分けです。〇×は、まちがえた側だけが負けるゲームでした。
25万通りなら、コンピュータは最後まで読み切れます。だから「むずかしい」は、毎回そうしています。自分の手を置いたあとの全部の未来を、勝ち負けが決まるところまで読んで、いちばんマシな一手を選ぶ。
まちがえないのだから、負けない。当たり前の話でした。
じゃあ「かんたん」は、どう作るのか
ここが面白いところです。
私はてっきり、読む手数を浅くして弱くしているのだと思っていました。5手先まで読むのが「むずかしい」で、3手先が「ふつう」、1手先が「かんたん」。そういう調節だろうと。
中を見たら、まったく違いました。
むずかしいは、さっきのとおり最後まで全部読みます。
ふつうは、一手も読みません。見ているのは2つだけです。自分が次で勝てるなら、そこに置く。相手が次で勝つなら、そこを塞ぐ。それ以外は、中央が空いていれば半分の確率で取って、あとは空いているマスから適当に選ぶ。先を読むということを一切していません。
かんたんは、もっと極端でした。その「勝てるか、塞ぐか」の確認すら、5回に1回ほどしかやりません。残りの8割は、空いているマスをただランダムに選ぶ。目の前で相手が2つ並べていても、見ていないので気づかない。
強さの差は、読む深さではなく、見るかどうかでした。かんたんは下手なのではなく、盤を見ていない。
数字で見ると、こうなります
3種類の相手と、それぞれ3000回ずつ対戦させました。表はCPU側の成績です。「適当に指す相手」は空いているマスをランダムに選ぶ人、「ちゃんと指す相手」は王手と受けを見て、中央と角を優先する人です。
| 難易度 | 適当に指す相手 | ちゃんと指す相手 |
|---|---|---|
| かんたん | 38%勝ち/46%負け | 0%勝ち/89%負け |
| ふつう | 78%勝ち/4%負け | 0%勝ち/46%負け |
| むずかしい | 80%勝ち/0%負け | 全部引き分け |
「ふつう」の列が、いちばん人間らしいと思いました。何も考えていない相手にはきちんと勝つのに、少し考える相手には一度も勝てない。目の前しか見ていない人の成績です。
「かんたん」は、適当に指す人とほぼ五分でした。これは意図した通りで、何も考えずにポンポン置いて、たまに勝てるくらいがちょうどいいはずです。
残機を99にしていた、あの感じ
手加減の作り方が「注意の量を減らす」だったというのは、言われてみれば納得でした。
人間が弱いときも、たいてい読みが浅いのではなく見落としているわけです。相手が2つ並べたのに気づかない。自分が勝てるのに気づかない。深さより、うっかりです。
昔、ベーマガのプログラムを打ち込んだあと、私がまずやったのは数字をいじることでした。自機のスピードを上げる。敵を減らす。残機を99にする。あれは難易度の設計を、外から手で回していたことになります。
三十五年経って、同じことを作る側からやりました。ただ、回しているつまみが「強さ」ではなく「注意力」だったのは、思っていたのと違いました。
勝てたら、教えてください
「むずかしい」で引き分けに持ち込めたら、それはもう最善手を指せているということです。勝つのは無理です。9000戦して一度も起きませんでした。
勝敗の記録は、お使いの端末の中だけに残ります。難易度ごとに別々です。
それと、盤の見た目をノートと黒板で切り替えられるようにしてあります。暗いほうが、まわりから何をしているか分かりにくい。会議中の使用について、私は何も申し上げません。
遊んでみてください。→ まるばつ

コメント