あけましておめでとうございます(遅
まあ、めでたくもなんでもない日本史上最低の正月でしたけれど。
閑話休題、この正月は数独の自動生成・自動解答+αなプログラムを書いていました。
私はクソガキのころからペンパが好きで、新幹線や飛行機を使うような長旅のお供はお菓子よりニコリのパズル本というガキで。
そんな調子なので大学の頃はC言語でソルバを書いていたりしていたのですが、もうそんな根性はないので今回は素のJSでベタ書き。
ES5あたりからのJSは普通に早いし書きやすくて最高です。
VUEやらjQueryといった華美な衣装は(よく知らんし)使いません。裸のJSで(数独の)マスをカクのがさいこうなのです。
違いますよ女子小学生に発情するおじさんはどうかと思います。
というわけで1問。
私は添付画像の問題を解くのに1時間もかかりました。この数年ペンパから離れていたせいか脳みそがすっかり退化していて「あるマスが属するタテ・ヨコ・部屋に書かれている数字はそのマスに入らない」という基本中の基本手筋をすぐに忘れてしまいます。原理上私のソルバが出力するのは上記の手筋だけで解ける問題のはずなのだけれど、タテヨコを忘れて部屋ばかり見てしまうのは画面デザインが悪いのか? それとも普通に私の頭が悪いのか……。
わざわざ印刷して遊ぶようなヒトはいないでしょう。画像で示した問題は以下のURLからプレイできます(ブラウザのアドレス欄にコピペ)。
https://hoeg1.github.io/81place/?id=N658CE20P29
※上記の"?"以降をカットして開くと自動生成された問題をプレイできます:
https://hoeg1.github.io/81place/
リンク先に100万点がどうたらとゴチャゴチャ書いてあるのは上記の「+α」部分で、無視して良いです。
お屠蘇気分で「数独を9から解答しなきゃダメにしたら面白いんじゃね?」と思いルールを実装してみたのですが、別にそういうのがなくても数独は楽しいというのが個人的な発見でした。競技ペンパのガチ勢は違う意見かもしれませんが、数独はプレイスタイルや時間を気にせずまったり遊ぶのが一番だと感じます。
なにはともあれ、数独以外にも波及効果(or簡易版のスターバトル)とかスリリンとか、ペンパはやっぱ面白いすね。