【AIとつくったペンシルパズル】カズさん
ChatGPTと新しいペンシルパズルを作ることに挑戦してみました!
前回の挑戦はこちら。
今回も、私とChatGPTが協力してパズルのルールやコードを作成しました。今回は、「カズさん」と名付けたパズルをご紹介します。ChatGPT o1-previewと一緒にルールや問題を生成したパズルです。(シンプルなルールなので、全く同じパズルをすでに考案している人がいるかもしれません。)
この記事は「カズさん」パズルについての紹介だけでなく、ChatGPT o1-previewの活用方法についても触れています。また、サムネイル画像はChatGPT 4oが生成したものです。
パズルの概要
ルール
9×9のグリッドを使います。このグリッドは、3×3のブロック(太線で区切られた枠)に分けられています。
各マスには、1、2、3のいずれかの数字を入れます。
各行・列には、1、2、3がそれぞれ3回ずつ現れます。
3×3のブロック内でも、1、2、3がそれぞれ3回ずつ現れるようにします。
すべてのマスを埋め、上記のルールを満たすことが目的です。
例題
まずは、真ん中のブロックの「2」に注目してみましょう。縦・横に同じ数字が3個ずつ現れるため、オレンジ色で示された列や行には「2」が入らないことがわかります。真ん中のブロックに「2」を3つ入れるべき場所は白いマスで、そこに「2」を配置します。
次に、左上のブロックの「3」に注目します。縦・横に同じ数字が3つずつ現れるため、オレンジ色の実線で示された列には「3」は入らないことがわかります。また、オレンジ色の点線で示された列には「3」はあと1つしかはいりません。こうして、左の列に「3」を2つ配置します。
こんな感じで解いていくことができます。
今回の問題
ChatGPT o1-preview への指示文
このパズルを作成するために、以下のプロンプトをChatGPT o1-previewに与えました。
Prompt
ポイント
一度にすべての要求を盛り込む:ChatGPT o1-previewの場合、プロンプトにすべての指示を盛り込むと、複数回のやり取りをせずに問題生成がスムーズに進みます。
Pythonコードを経由する:直接パズル問題を生成させるのではなく、Pythonコードを介することでルールに破綻のない問題を作成することができます。ただし、実行に時間がかかりすぎることがあるため、試行錯誤が必要です。
今回はChatGPTにルールを作らせるのではなく、私がルールを指定しました。ただ、このルールの前身はChatGPTが作ったものです。そのときはじゃんけんをモチーフとするように指示していたのですが、生成されたルールがこれに近いものでした。じゃんけんをモチーフとして活かせていないので、数字を使うルールにし、細部のルールを整えました。
このパズルのルールは数独に似ているため、「数独」に対して「カズさん(数三)」というタイトルを付けました。数独と比較するとシンプルかもしれませんが、独自の解き味があり、十分に楽しめると思います。
今回の記事を楽しんでいただけましたか?よければ「スキ」を押していただけると励みになります。また、ぜひ「コメント」でご感想をお聞かせください!新しいパズルやアイデアをもっと共有していきたいと思いますので、今後ともよろしくお願いします。