ChatGPTに新しいロジックパズルを考えてもらう。それが本当に新しいかの保証はないけど

ChatGPTに今までに無かった新しいロジックパズルを考えてとお願いしたら、Sumpleteというゲームが提案されたという話。2次元のグリッド上に数字が、右端と下端に各行と列の数字の合計が書いてあるので、グリッド上の数字に×をつけて、書いてある合計になるようにするゲーム。

ところがこのゲームは実はすでに存在していた。Hacker Newsのスレッドで挙げられていたこのゲーム。

まあ世の中の全てのゲームを知ることは、人にもAIにも無理なので、新しいゲームを考えたけどすでにあったということは往々にしてある。なので本当に新しいかを保証するのが無理なのはしょうがないね。

それはそれとして、ChatGPTにロジックパズルを考えてもらうのは面白そう。以下のプロンプトでお願いしてみよう。


I want you to act as a logic puzzle game designer. Devise 5 novel logic puzzles. Create rules that are different from logic puzzles that already exist, such as Sudoku. The puzzle should consist of a two-dimensional grid. Several grids may be divided by walls. The initial state of the cells consists of both cells containing numerals or symbols, as well as empty cells. The player fills in the blank squares and tries to reach the correct solution.


2Dのグリッドのいくつかのマスに数字やシンボルが入っていて、空いているマスを埋めるタイプのロジックパズルを5つ考えて。グリッドは壁で区切られていてもよい。へやわけみたいなものが出てくるといいなと思って書いたプロンプト。

いくつか提案してもらった中に、以下のパズルがあった。


"Magnet Blocks"

In this puzzle, the grid contains magnets of opposite polarity (north and south). The player must fill in the grid with blocks of positive and negative polarity, such that each block attracts or repels adjacent magnets according to their polarities. A block can only be placed if it fits in with the surrounding magnets, and no two blocks of the same polarity can touch each other.


Magnet Blocksという、磁石を題材にしたパズルらしい。ChatGPTに日本語への翻訳もしてもらうと以下の通り。


このパズルでは、グリッドには異なる極性(北極と南極)を持つ磁石が含まれています。プレイヤーは、各ブロックが隣接する磁石の極性に応じて引き付けまたは反発するように、正および負の極性のブロックでグリッドを埋める必要があります。ブロックは周囲の磁石に合わせて配置され、同じ極性のブロックは互いに触れてはいけません。


パズルのルールとしてはあまりに漠然としているが、要は磁石をNとN、SとSが触れないように配置するゲームだと解釈した。なので以下のゲームにした。

screenshot

ブラウザ上で遊べます。ルールは以下。

  • グリッド上に棒磁石と壁が配置されている
  • NとN、SとSが隣接しないように空いているマスに棒磁石を置く。棒磁石は3マス以上の任意の長さで置ける
  • 全ての空いているマスに棒磁石が置ければクリア

レベル生成ロジックがイマイチのこともあって、パズルとしての深みは出せていないが、一応パズルとして成り立っている。

で、このパズルははたして新しいのか。Twitter上で聞いたところ、以下のMagnetsというパズルを教えてもらった。

磁石が題材のところは同じ。だけどルールはかなり異なる。

  • 棒磁石が置ける場所、方向はあらかじめ決まっていて、長さは2で固定
  • +とーが行と列に何回出現するかの制約がグリッドの外周に書いてある
  • 全ての空きマスを埋める必要はない

なので一応現時点では同じルールのパズルは見つかってない。けど磁石モチーフではない同じルールのパズルとかがあるかもしれない。分からない。

ロジックパズルは様式が定まっていることもあって、その様式の制約をとっかかりに、ChatGPTに新しいルールを考えてもらうモチーフとしては良いように思える。ただ、その定まった様式ゆえに、新しいと思って作ったものが既存のものと一致してしまうことも多そう。

また、パズルとして成り立つ厳密なルールをChatGPTに生成させるのは難しいので、あいまいな提案を具体的なルールにするのにはまだ人手がいる。遊べる形のプログラムコードにするなんてのはまだまだ難しい。

あと、できたパズルが解いていて楽しいか、ということを判断する、というのもまた別の難しさだ。これはルールだけでなくて、問題の生成ロジックにもかかわってくる。

厳密なルールを作る、などのChatGPTが不得意とする作業は、ChatGPTとは別の方法、プログラムで補うということができれば、チャットAIの応用範囲はさらに広がるだろう。

計算やファクトの検索に長けたWolfram|Alphaと連携する、なんてのはその一例になりそう。コーディングの観点からは、コンパイラや言語サーバー、IDEとの連携がより進むことを期待したいね。