プログラムを使ったパズルのパターン
検証に利用
人の手で作られたパズル
人の手で解き、唯一解チェックまで行なったが論理があっているか不安なのでソルバを利用して検証した。
人間&ソルバ 唯一解Verifed
作ったパズルに解があることを確認したが、唯一解が検証できなかったのでソルバを利用して検証した。
特にナンバーリンク など
ソルバ・プログラムによる作問
人による解きチェックを行なっていない
人の手で解が求められることを確認した。(唯一解かはソルバ任せ)
人の手で唯一解確認まで行なった。
プログラムによる解答補助
基本的に人の手で、わからないところでHODOKUのヒントなどに頼る
補助ツールを利用して盤面を見えやすくする(数独の自動候補表示など)
ソルバを用いた作問
ソルバで解を確認しつつ、唯一解になるように表出を設定した。
解答盤面を自動生成し、唯一解を保ったまま表出を減らしていった。
いくつかの表出を設定して、そこから解答盤面を一つ作成し、他が解とならないように表出を設定した。(半自動生成)
プログラムによる作問
いわゆる自動生成 (Generated)
趣向を考え、それに当てはまるパズルを探索 → 天然のパズル
見た目がものすごく綺麗、解き味は運任せ
一発で見つからず、調整することになることが多い→Tool-Assisted
解空間をあまり絞らずルールや制約に沿ったパズルを生成 → ガチャ
良いパズル(見た目や手筋、難易度評価)をパラメータ化して最適化(遺伝的アルゴリズムなどで探索)
スケルトンコンテストや表出18の数独など
普通の解き心地の良いパズル(世間で一番ウケるやつ)は自動生成の方が質が高いものができたり、質の高いものを大量に作るのに向いていると考えられる。
人間+プログラムによる作問
Tool-Assisted
解答盤面を生成し、そこから人の手でパズル問題に仕上げる
一般に解答盤面から減らす方向で良質なパズルを作るのは難しい
成立の難しい、知られていないパズルについて、とりあえずどんなパズルができるのか試す、パズル研究としての利用も。
天然のパズル+成立するよう細かくチューニング
表出を動かして試したりなどはよくある
komeiさんの数独など
唯一解になるようルールの方を変化させて作成
趣向を考え、プログラムの補助によりパズルを作成する
人の手だけでは作れない、作るのが大変な良問、趣向作の実装に利用
手が込んだものになりがち
色々な関わり方があるので考えていきたい。
例: 準急さんの
SP1さんより今年1のヤジリンとの評価
拙作
よみどおり
カーブデータの解探索したり、よみどおりの自明な複数解を弾いたり、ちょうどいい盤面の広さを考えるための分析など色々
Instructionless
解盤面探索、唯一解チェック、探索による解きチェック
表出を考える過程で人の手で手筋などを仕込んだり
プログラムによる制作補助
HODOKUに手筋を教えてもらう、現在の表出からの確定部分を表示してもらう、など
プログラムによる解きチェック
手筋ベースの難易度評価
HODOKUによる難易度評価など
探索ベースの難易度評価
試行錯誤系のパズルの難易度評価に使える可能性
探索順を変えた平均をとるなど。