ナンバープレイスってご存知ですが、
数字を使ったパズルで、基本的ものでは9×9のマスがあり、
縦・横・所属するブロックに同じ数字が入らないルールで、1~9の数字を割り振っていく遊びです。
このナンバープレイスを実習用のサンプルとするため、
このブログでもおなじみの「鋼鉄神さん」と「フットサル海賊団さん」が
グラフィックとプログラムのそれぞれを担当され、制作されておりました。
少し面白そうだったので、相談をされているのを小耳にはさんでいたところ、
いつの間にか問題作りが担当になっており、耳どころか首まで抜けない状態にされてしまいました。
まぁ、そんな事を言いながら、ゲームを開発することは楽しいので、
実はワクワクしながら参加させていただいていただきました。
問題作りはコツコツと1問ずつ手作りしていく方法もあるのですが、
人の力では時間がかかって仕方がありません。
そこで、コンピュータに自動生成させるプログラムを作ることになりました。
手順としては、問題を生成する考え方をプログラムにして、
その後、問題を解く考え方をプログラムに反映し、
コンピュータ自身が問題生成と解答を繰り返すことで理論のミスが無いことをチェックしました。
適当に自分の考え方をプログラムに反映したので、
生成された問題の品質やプログラムの効率はわからないものの、
1秒間に2000問ぐらい生成することが可能で、
最終的には、問題生成数・難易度・空白の数や分布状態など一通りのことが
指定出来るものが出来上がりました。
自動生成したパズルや迷路を複数の人に解いて頂くと、
概ね設定した難易度通りの結果を出してくれるのですが、
不思議と一部の人は、難易度が高いものを簡単と評価し真逆の結果を出してくれます。
私の作ったものでは、15人に1人程度の方が設定とは逆の意見を示されます。
想定しない意見は悔しさを与えるのですが、
同時に、想像しなかった解答方法や思考方法をも与えてくれるので、
それらの意見は非常に大切になっております。
冒頭にあった問題は、左側が難しく、右側が簡単な設定になっております。
皆さんの評価はどうでしょうか。