remove
powerd by nog twitter

パズルソルバー

ここでは私がなんとなく作ってみた「パズルを解くプログラム」を公開します。
全て perlなので winの人はAvtivePerl等入れて使って下さい。

piclg.pl

「イラストロジック」とか「ピクロス」などと呼ばれるパズルを解くプログラムです。
以下の形式で問題のテキストファイルを作り、引数で指定してください。

(横サイズ)x(縦サイズ)
(上1段目塗潰し数1),(塗潰し数2),(塗潰し数3)…
(上2段目塗潰し数1),(塗潰し数2),(塗潰し数3)…
   :
(最下段塗潰し数1),(塗潰し数2),(塗潰し数3)…
(左1列目塗潰し数1),(塗潰し数2),(塗潰し数3)…
(左2列目塗潰し数1),(塗潰し数2),(塗潰し数3)…
   :
(右端列塗潰し数1),(塗潰し数2),(塗潰し数3)…

パターンの仮定はしないので必ずしも解けるとは限りません。
あと、何気にモノクロだけじゃなく複数カラー問題にも対応しています(笑)
塗潰し数の所を "(色指定文字) (数)"にして下さい。
色指定は1文字、数との間は空白区切りです。

numpl.pl

「ナンバープレース」とか「数独」と言われるものを解くものです。
半角で 9文字x9行の問題テキストを作り引数で与えてやって下さい。
パターンの仮定を行いますので必ず解けます。(時間は掛かるでしょうが)
また可能なパターン全てを出力しますので問題の妥当性を調べるのにも使えるかと思います。

splmus.pl

これは…パズルじゃないです(^^;)
まぁパズルみたいなものなんですが…
CDの曲をテープの両面に振り分け、可能な限り両面の曲の長さの合計を均等にする…
という問題を解こうと思って作ってみました。

曲タイトル   hh:mm:ss
 :

という形式のテキストファイルを作って指定して下さい。曲名と長さの間はタプです。
プログラムの面の数を変えれば 3等分や5等分も出来ます(笑)

reverse.xls (注 これだけエクセルです)

これもパズルじゃなくてゲームですね。
いわゆる「オセロ」です。会社で話しててロボットのプログラムを戦わせるとかいう話題から「オセロのアルゴリズムを戦わせてみたい」「エクセルで簡単に作れないか」なんて話になって試しに作ってみたものです。速攻で作ったのではっきり言って弱いです。白黒それぞれのアルゴリズムを選択して「開始」ボタンで戦わせられます。「連続試合」ボタンを押せば「試合数」の分だけ連続で戦い、勝敗記録も残ります。
(ちょっとだけバージョンアップ。棋譜が残るようにしました。)


上に戻る