次の13の正方形の王のタイルが飛行機を非周期的に並べることが証明されました。つまり、正方形が隣接するすべての辺が同じ色のグリッドに配置されている場合、パターンの変換はそれ自体と一致しません。
各タイルをテキストで3×3グリッドで表し、中央と隅にスペースを入れ、エッジにある赤、緑、青、黄、グレーの代わりに1〜5の数字を使用します。
2 2 2 1 1 1 4 3 2 2 4 3 2
1 2 1 3 2 3 2 1 3 1 3 2 4 4 4 4 4 5 4 5 5 5 5 5 5 4
3 2 3 2 3 2 1 2 1 4 1 2 2
ゴール
あなたの仕事は、幅と高さを取り込んで、それらの寸法で有効なWangタイルグリッドを出力するプログラムを書くことです。有効なタイルとは、隣接するすべてのタイルエッジが同じ色(または番号)であるタイルです。バイト単位の最小プログラムが優先されます。
入力はstdinまたはコマンドライン引数から取得し、出力はstdoutに送信する必要があります。正確な入力形式は、のように合理的に明白なものであれば何でもかまいません>>> wangtiler 3 2
。幅と高さは常に正の整数です。
例(幅= 3、高さ= 2)
テキストタイルをレイアウトすると、隣接するエッジが必要な冗長な数字のペアを形成することに注意してください。
1 2 1
2 11 22 1
2 3 2
2 3 2
4 55 55 4
1 2 2
(これは適切な出力形式ではありません。)
これらを水平および垂直に圧縮して、以下を取得できます。
1 2 1
2 1 2 1
2 3 2
4 5 5 4
1 2 2
この圧縮形式は、使用する必要がある適切な出力形式です。奇数行には末尾スペースを含める必要があります。
グラフィカルボーナス
テキスト出力の代わりに、プログラムはタイルグリッドの画像を出力する場合があります。グラフィカルタイルは、正方形に配置された4つの45-45-90三角形で構成され、上のタイルのように簡単に区別できる5つの色を使用する必要があります。黒い境界線は不要です。グラフィカルタイルのサイズは少なくとも32×32ピクセルである必要があります。それらには「圧縮」は適用されません。
ボーナス画像の例:(上記の例と同じグリッド)
ボーナスはマイナス150バイトの価値があります。
ノート
- この13個のタイルのセットを使用する必要があります。
- タイルは回転できません。
- タイルは何回でも表示される場合があります(まったく表示されない場合もあります)。
- 任意の寸法の有効なタイルが可能であると想定できます。