入力ファイルは、以下のルールに従ってカックロの盤面をテキストで表示したものとなります。
このとき、注意しなければいけないのはヒントマスにスペースは使えないということです。ですから、ヒントが一桁の数字の場合、上下とそろえるために
|*2,**|
と書きたいのですが、
|2,***|もしくは|02,**|
と書かなくてはいけません。
以上のルールに従ってこの盤面を入力ファイル形式に直すと、下のようになります。
日本文芸社刊 パズルポシェットシリーズ 足し算クロスA/大屋徳敬 より|**,**|14,*|23,*|**,**|29,**|34,**|**,**|38,**|23,**|4,**| |**,11| | |**,06| | |***,8| | | | |***,4| | |05,17| | |**,19| | | | |**,16| | | | | |***,7| | |6,**| |**,34| | | | | |41,11| | | | |**,**|11,*|22,*|38,22| | | | | | | |**,29| | | | |18,26| | | | | |**,21| | | | | | |11,**|13,**|11,*| |**,12| | | |**,35| | | | | | |**,**|08,6| | |**,17| | | | | | |**,19| | | |***,9| | |**,06| | | |**,06| | | |***,5| | |**,03| | |
これを見ればわかるように、一桁の数字が出てくるところ以外は自然に縦をそろえて書くことができます。別に縦にそろえる必要も、実はありません。ただ間違いを探すときなどに見やすいからそうしているだけです。左から2列目や3列目が4マス取りになっているのも、|14,**|と5マス取りで書きなおせます。また、一桁の数字も十の位に0を書けば縦にそろえられるのですが、いろいろな書き方の例を見せるためもあって、|***,4|などという書き方も採用しました。
本当はヒントの区切りにバックスラッシュを使いたかったのですがうちの環境がWindowsなので、バックスラッシュは全角文字でしか存在しないためにあきらめてカンマにしました。
最後に、今回デバッグに使用した入力ファイルをあげておきます。
bt1.txt上の三つは、バックトラックと全解探索の確認のために作ったもので、nobt.txtは前出の「足し算クロスA」という本の、ルール説明用の小さい盤面です。これを使っていたらなんとバックトラックに入らずに解けてしまうようになったため、あわててバックトラックの実践用に作ったのがno79.txt、本の一番最後に載っていたレベル★★★★★(最難)の問題です。そして、いつまでもこの問題が解けないために難しすぎて時間がかかるんだなと判断して、もう少し簡単なものをと作ったのがno30.txtです。レベル★★★ですが、プログラムが完成してみたら、解くのにかかる時間はほとんどno70と変わりませんでした。