ブロックスデュオの手を4文字コードで入力すると、合法な手かどうか判定して盤面を出力したり、4文字コードおよびHTMLで棋譜を出力したりするプログラムです。ANSI C (ISO/IEC 9899:1990)以降で動くように作ってあります。日本語の文字を使っているので、対応した環境で実行してください。
C ・・・・・・・・・・・・・・ D ・・・・・・・・・・・・・・ E ・・・・・・・・・・・・・・ P1: 5 a b c d e f g h i j k l m n o p q s t u P2: 5 a b c d e f g h i j k l m n o p q r s u 3-P1 4文字コード:置く E:記録終了 B:一手戻る ?96t4 96t4 1 2 3 4 5 6 7 8 9 A B C D E 1 ・・・・・・・・・・・・・・ 2 ・・・・・・・・・・・・・・ 3 ・・・・・・・・・・・・・・ 4 ・・・・・・・・・・・・・・ 5 ・・・・■・・・■・・・・・ 6 ・・・・■■・■■■・・・・ 7 ・・・・・■■・・■・・・・ 8 ・・・・・・・・□・・・・・ 9 ・・・・・・・□□・・・・・ A ・・・・・・・・□□・・・・ B ・・・・・・・・・・・・・・ C ・・・・・・・・・・・・・・ D ・・・・・・・・・・・・・・ E ・・・・・・・・・・・・・・ P1:10 a b c d e f g h i j k l m n o p q s u P2: 5 a b c d e f g h i j k l m n o p q r s u 4-P2 4文字コード:置く E:記録終了 B:一手戻る ?
初出時のプログラムには、パスの記録にバグがあり、以前に駒を置いたのと同じ手数のところに戻ってパスをすると、誤った棋譜を出力していました(2008-12-16修正)。
記録中と記録終了の二つの状態があり、自由に行き来できます。最初は記録中になっています。
記録中は盤面、覆ったマス目の数、未使用の駒の名前が表示され、4文字コードの入力、一手戻ること、一手進むことができます。4文字コードと一手進むでは、合法な手かどうかチェックしています。パスのときは4文字コードとして----のみ受け付け、両方パスだと4文字コードを受け付けません。
記録終了時には、4文字コードの表示とHTMLファイルの出力ができます。4文字コードで複数の表記が可能な場合は、座標の任意性を含めて、向きの番号が最小になるように正規化しています。
4文字コードのファイル入出力機能はありませんが、ウィンドウシステム上で動かしている場合は、コピー&ペーストで代用できます。入力するには、入力したいファイルを開いて4文字コードをすべてコピーし、記録中の状態でペーストします。出力するには、記録終了時の「4文字コードの表示」の結果をコピーし、出力したいファイルにペーストします。
JIS漢字コード(JIS X 0208)の罫線文字を使ってピースの形などを表示するプログラムです。入力はテキストファイルで、同じピースを同じ文字で、異なるピースを異なる文字で記述します。言い換えると、このプログラムは異なる文字の間に罫線を引き、その罫線だけを出力します。裁ちあわせパズルの全解探索の解答、ペントミノパズルの解の分類の解答の図に使用しました。
Java言語のプログラムのソースファイルです。