「サイコロ遊び」でも書いたのだけれど、私は基本的にダイスゲームが好きだ。
これまでの自作ゲームも、「ダイス☆スター」だったり、「もじキューブ」だったり、サイコロ絡みのものが多い。
その中でも、とりわけ、「ヤッツィー」「GREED$」「クニツィアのデカスロン」が好きすぎるので、このどれかを遊び始めると、かなり長く遊んでいるし、そのうち息子と延々と遊ぶことになると思っている。
というわけで、今日はヤッツィーについて考えてみたい。
由来とか
確かに、最初に遊んだ時は、「ヨット」という名前で紹介された記憶がある。調べたら、「Generala(ヘネラーラ)」みたいな名前もあったりして、かなり古いゲームで、出自があまりはっきりしないんだなぁ、ということがわかる。
Jr.というバージョンもあって、これは数字の概念を捨てて、絵合わせの要素だけで遊ばせるもので、ディズニーキャラクターのやつとか、何種類か出ていた気がする。
アルゴリズム?
かなり間をすっ飛ばして、皆さんがヤッツィーを理解しているものと考える。そのうえで、ChatGPT-4oくんに、得点をたくさん取るためのアルゴリズム的なものを考えてもらおう。
なるほど。4oくんが考えるアルゴリズムは、5つ同じ目が出るYahtzee、5つの目が階段状に並んでいるLarge Straight、3個、2個と出目が揃っているFull House、4つの目が階段状に並んでいるSmall Straightをこの順に優先取得し、それが出ていない時には(或いは既に埋まっているときには)できるだけ同じ目をたくさん出す方向に切り替える、というものらしい。
このときに、既に埋まっているAceからSixまでの数字のことを考えたり、BONUSの事を考えたり、Chance効率の事を考えたりと、本当に強いアルゴリズムにするのならばもう少し考慮する必要がありそうだが、よくもまぁ、こんな個別のゲームのアルゴリズムをササッと答えてくれるものだなぁ、と感心している。
ついでの実装
例によって例のごとく、ここまできたらPythonで実装してくれないかな、と。
もちろん細かい部分は手を加えないと行けない部分はあるし、ん?と思う部分はあるのだけれど、大枠これで問題なかろう。
そのうち、この4o版のAIとYahtzeeでサクッと対戦できるようにして、延々と時間を溶かそうではないか。
まとめ
学習データに、「Yahtzeeで高い得点を取るためのアルゴリズム」なんてものが入っているとは思えないので、このレベルでアルゴリズムが組めているのは、改めて凄いことだなぁ、と思う。
ここまで理解しているのなら、Yahtzeeにアレンジを加えることもできそうだ。
モノポリーだって、Expressルールが登場して、追加のサイコロを振って時間を短くしたりしていたし、アイデア1のマジックダイスの追加は面白い変化をもたらしてくれそうな予感がある。(例えば、6面のうち1つは、「1/2」となっていて、1または2でYahtzeeを作る時の補助に使えるとかでもよさそうだ)
…あ、これは久々に熱が入りすぎて、とんでもないところまで来てしまったやつだ、となっているので、ここまで真面目に読んでくれた読者さんへ感謝の意を示しつつ、今日はこのへんで終わりにしたいと思う。ほなね!
例のAI画像のコーナー
ちょっと文章パートに熱を入れすぎて疲れてしまっているので、画像パートはいい加減に、「Ms. Yahtzee」とだけ入れて何が出力されるか見てみた。
ギリギリまで猫と迷ったが、もう1枚生成されていたいかにもYahtzee強者の画像を、今日の見出し画像としたい。