【AIとつくったペンシルパズル】ライアースイーパー
ChatGPTと新しいペンシルパズルを作ることに挑戦してみました!
前回の挑戦はこちら。
この時は、ChatGPTがすべてを作りました。今回は私と一緒にルールやコードを作っています。
さて、今回は、ChatGPT o1-previewと一緒にルールや問題を生成したパズルである、「ライアースイーパー」というパズルをご紹介します。(シンプルなルールなので、全く同じパズルをすでに考案している人がいるかもしれません。)
この記事は、パズルの記事でもあり、ChatGPT o1-previewの記事でもあります。
ちなみに、サムネ画像はChatGPT 4oが生成したものです。
パズルの概要
ルール
パズルは N×N のグリッドで構成されています。
すべてのマスにはヒントとして数字が書かれています。
一部のマスを黒く塗りつぶします。他のマスはそのままにします。
ヒントの数字は、そのマスに隣接する8マス(縦・横・斜め)に含まれる黒マスの数を示します。ただし、黒く塗りつぶしたマスのヒントは無視してかまいません。
黒マスが2×2のブロックを作ってはいけません。
プレイヤーの目的は、黒く塗りつぶした数字以外の、残されたすべての数字が正しく周囲の黒マスの数を示すようにすることです。
例題
この例題だと、左上の「3」が白マスだと仮定すると、その周囲すべてが黒マスになります。すると、右列の1は両方とも矛盾するため黒マスになり、2×2の黒マスのブロックができてしまいます。つまり、左上の「3」が白マスという仮定は間違いで、これは本当は黒マスであることがわかります。
次に、左下の「3」が白マスだと仮定すると、その周囲すべてが黒マスになります。すると、上の「2」の矛盾するため黒マスになり、2×2の黒マスのブロックができてしまいます。つまり、左下の「3」が白マスという仮定は間違いで、これは本当は黒マスであることがわかります。
さらに、左の「2」のマスが黒マスだと仮定すると、下の「1」は矛盾するため黒マスになり、真ん中の「3」も矛盾するため黒マスになります。これでは2×2の黒マスのブロックができてしまうため、左の「2」のマスが黒マスという仮定は間違いで、これは本当は白マスであることがわかります。
すると、このマスの周囲にはすでに黒マスが2個あるため、それ以外のマスは白マスであることがわかります。
あとは簡単に解くことができます。
今回の問題
サイズで難易度を調整しやすいので、4問載せます。
4問目は私では手も足も出ません。プログラマなら解けるかも。
問1
問2
問3
問4
ChatGPT o1-preview への指示文
このパズルの作成は次のプロンプトからスタートしました。
Prompt
ポイント
一度のプロンプトに要求を盛り込む
ChatGPT 4oでは複数回のやり取りを前提としたプロンプトにして、まずはルールだけを考えさせるのが良いと思いますが、ChatGPT o1-previewの場合、一度のプロンプトに要求を盛り込み、GPTに思考させるのが良いと思います。
直接的に問題を生成させずにpythonを経由する
問題と解答については、コードを経由することを強くお勧めします。これにより、文章としてそれっぽい出力ではなく、きちんとルール上破綻のない問題を生成することができます。
(ただし、ChatGPT o1-miniで試した際は、ルールそのものに破綻がある場合があり、いつまで経っても終了しないコードを出力したことがありましたので、注意が必要です)
今回はChatGPTが最初に作ったルールだと、とてもつまらない作品でした。下記がChatGPTが最初に作った作品です。
ChatGPTが生成したパズルのルール:「アイソレート(Isolate)」
セルの塗りつぶし:一部のマスを黒く塗りつぶします。他のマスは白のままにします。
数字の意味:数字が書かれているマスは、そのマスに隣接する(縦・横・斜め)黒マスの数を示します。
黒マスの配置:黒マス同士は互いに隣接してはいけません(斜めも含む)。
白マスの連結:全ての白マスは縦横につながっていなければなりません。
この方向で進むと、ルール3と4がなければ既存のパズル(ボンバーパズル)ですし、このルールを追加することでむしろつまらなくなってしまっています。そこで、私もアイデアを追加しました。
以下は、実際のプロンプトからの抜粋です。実際のプロンプトではこれらに加えて、コードのエラー修正依頼や、こちらで直したコードを貼り付けたりもしています。
その結果、今回のルールのパズルになり、問題生成プログラムも得られました。
最後に、人間である私が考えたオリジナルパズルを紹介
ちなみに、人間である私が考えたオリジナルパズルはこちらです。高校生くらいの時に作ったルールなんですよね。AIにアイデア負けしていなければよいのですが…。
ライアースイーパーのすべての問題はこちらから。今後も問題を出していきます。
ブラウザから遊べるようにしました。