廣島です.仕事してます.
> ふと思ったのですが、コンピュータにクロスワードを作らせるには
> どんなロジックを使うのでしょうか?
> 単語リストからランダムでピックアップし、いきあたりばったりで
> 埋めていっても...と思ったもので。
>
> 「この単語は何文字目が別の単語の何文字目と縦横で繋がる」
> とか、やるのかな?
>
英語のクロスワードは,
先に黒マス・白マスのデザイン(たいていが点対称のパターン)が
決まっているように思います.
この場合は,文字数で既に制限がかかっているので,素朴に考えて,
基本的に長い綴の列から,
最初はランダムに単語を選択して埋めていき,
その後は「2文字目 a,4 文字目 h の 5 文字」
等の条件でクロスワード辞典を検索し,
当てはまるものが無ければ
既に埋めた列を差し替えるのでは?
そうだとすると,
効率良くパズルが作成できるようにするためには,
・列を埋める順を決める
・検索結果から単語を選ぶ
・差し替えする列を選ぶ
のアルゴリズムとデータ構造が鍵になりそうですね.
-----------------------------
廣島 勉
(tsutomu@...)