前書き
ウィキペディアから:
平面のテッセレーションとは、タイルと呼ばれる1つ以上の幾何学的形状を使用した平面のタイル張りで、重なりや隙間はありません。
かなりよく知られているテッセレーションを以下に示します:
菱形は、重なりや隙間がないようにタイル状に並べられ、キューブの列の交換をシミュレートします。
仕事
あなたの仕事は、上記の画像と同じように菱形をテッセレーションするプログラムを書くことです。プログラムへの入力は、テッセレーションの次元になりますheight x width
。ここで、幅は列の量で、高さは行の量です。
単一のキューブ1 x 1
(3タイルの菱形)は、次のように正確に表されます。
_____
/\ \
/ \ \
/ \ _____\
\ / /
\ / /
\/_____ /
したがって、入力/次元がの3 x 2
場合、これは出力になります。
_____
/\ \
/ \ \
/ \ _____\ _____
\ / /\ \
\ / / \ \
\/_____ / \ _____\
/\ \ / /
/ \ \ / /
/ \ _____\/_____ /
\ / /\ \
\ / / \ \
\/_____ / \ _____\
/\ \ / /
/ \ \ / /
/ \ _____\/_____ /
\ / /\ \
\ / / \ \
\/_____ / \ _____\
\ / /
\ / /
\/_____ /
ご覧のとおり、3行(高さ)と2列(幅)があります。列は上下に入れ替わっています。あなたのプログラムもこれを行い、より高く起動する必要があります。たとえば、次のように3 x 3
なります。
_____ _____
/\ \ /\ \
/ \ \ / \ \
/ \ _____\ _____ / \ _____\
\ / /\ \ / /
\ / / \ \ / /
\/_____ / \ _____\/_____ /
/\ \ / /\ \
/ \ \ / / \ \
/ \ _____\/_____ / \ _____\
\ / /\ \ / /
\ / / \ \ / /
\/_____ / \ _____\/_____ /
/\ \ / /\ \
/ \ \ / / \ \
/ \ _____\/_____ / \ _____\
\ / /\ \ / /
\ / / \ \ / /
\/_____ / \ _____\/_____ /
\ / /
\ / /
\/_____ /
ルール
- 結果を出力する必要があり、入力は任意の方法で取得できますが、高さと幅に対応する必要があります
- 末尾の改行が許可されます
- テッセレーション列は常に上から始まり、上下に交互になります
- テッセレーションの側面を共有し、テッセレーションを他の列の間に隙間なく正しく配置する必要があります
- あなたの提出物は、機能または完全なプログラムである可能性があります
- 同じ入力が与えられた場合、プログラムは上記の出力を正確に印刷する必要があります。言い換えれば、出力はキューブ/テッセレーションの同じ形式に従う必要があります
仮定
- 入力は常により大きいと想定できる
1 x 1
ため、ゼロが入力される場合は必要ありません