Web上のインタラクティブパズル作成ツール
「今日のパズル」を作るために使ったリソース
数独やニコリ系のペンシルパズルを自分で遊び、また人に遊んでもらうため、Webでパズルを入力し、インタラクティブに遊べるようにするプログラムを、PHPとJavascriptを使って作り、集めたり自分で作ったりしたパズルを「今日のパズルall」というブログにまとめています。
ここでは、このブログやパズル支援ツールを作るに際して利用した様々なリソースと、それをなぜ選択したのかを書きたいと思います。
jQuery
Javascriptだけでは、プログラミングが面倒すぎる気がしていたのですが、jQueryを使うと、画面に表示されている各パーツにIDで名前をつけたりClassでグルーピングすることで、それらを非常に簡潔な表現で動的に変更できるようになります。一般的には画面にアニメーション効果を出すためによく用いられているもののようですが、パズルのプログラミングには非常に相性の良いライブラリです。なお、Javascriptをプログラミング言語に選んだのは、Chromeとエディタだけあればよく他に何も開発環境を必要としないで開発できるのが最大の理由。
CodeIgniter
CakePHPに比べるとはるかにマイナーなPHPフレームワークのようですが、いい意味で適当な仕様になっていて、これまたエディタで書いたプログラムをサイトにアップロードしてブラウザで確認するだけでプログラミングが完結してしまう手軽さがとても気に入りました。フレームワークは、多種類のパズルをできるだけコードを使いまわしして開発上では必須です。データベース周りや画面表示はフレームワークに任せて、プログラミングはパズルのロジックだけに専念できます。
WordPress
今やもっともメジャーなブログシステムとなりましたが、かなり初期のころからインストールタイプのものを使っています。書いた記事を特定の日時に表示できること、問題と解答(解答が書かれた読者コメントも含めて)を別のページに表示できること、支援ツールの埋め込みが簡便にできること、が機能として必須で、それらがすべて可能なブログはこれしかありませんでした。