ユーザーが印刷してパズルを作成できるクロスワードグリッドを含むファイルを作成するプログラムを記述します。
入力
クロスワードグリッドファイルを表すファイル名と、オプションでクロスワード番号付けファイルを表す2番目のファイル名。入力は、コマンドライン引数、標準入力、Webフォームなど、プログラミング環境の従来の方法で受け入れる必要があります。
クロスワードが検証済みで、提供されたグリッドに対応するナンバリングファイルを使用していると想定できます。
グリッドファイル形式:最初の行は、空白で区切られた2つの整数定数MとNで構成され[#A-Z ]
ます。その行の後には、から選択されたN文字(および新しい行)で構成されるM行があります。これらの文字は'#'
、ブロックされた四角、' '
内容が不明なパズルの開いた四角、およびその文字を含む開いた四角を示すように解釈されます。
番号付けファイル形式 '#'で始まる行は無視され、コメントに使用できます。他のすべての行はタブ区切りトリプレット含むi
、m
、数がグリッド上に印刷されるべきであり、そしてそれが印刷されるべきである正方形の行と列を表しています。行と列の両方の数は1から始まります。n
i
m
n
出力
出力は、ユーザーが印刷してクロスワードを処理できるファイルになります。ASCII、postscript、pdf、png、およびその他の合理的な形式はすべて受け入れられますが、すべて次の規則に従う必要があります。
- パズル全体と、正方形の各ペアの間にはルールが必要です。
- ブロックされた正方形は暗く塗りつぶす必要があります。
- 番号付き(横または下)の開始を表すプレイスクエアでは、スクエアの左上隅に番号を付け、プレイが書き込むためにスクエアの大部分を空白のままにする必要があります。一般的なグリッドに注意してください論文で公開されたものは、数十の手がかりがあり、100以上ある場合があります。
手がかりのリストなしで、出力はグリッドのみになります。
出力は従来の宛先(入力ファイル名から派生した名前のファイル、Webページとして生成されたファイルなど)に送信する必要があります。
テストケース
の入力が与えられた
5 5
# ##
#
#
#
## #
受け入れ可能なASCII出力の開始コーナーは次のようになります。
+-----+-----+-----+---
|#####|1 |2 |###
|#####| | |###
|#####| | |###
+-----+-----+-----+---
|#####|3 | |4
|#####| | |
|#####| | |
+-----+-----+-----+---
|6 | |#####|
| | |#####|
グラフィック形式を使用している人は、通常の印刷されたソースからインスピレーションを得るべきです。
採番スキーマ
正しい番号のグリッドには、次のプロパティがあります。
- 番号は1から始まります。
- 開いた正方形の列またはスパンには番号が付けられていません。
- 番号は、各行を左から右に取って、上から下にスキャンすることにより、カウント順に発生します。
さておき
これは、いくつかのクロスワード関連の課題の3番目です。私は一貫して一貫したファイル形式のセットを使用し、その過程でクロスワード関連ユーティリティの立派なスイートを構築する予定です。
このシリーズの以前の課題: