この質問の目的のために、蛇行曲線は、左から右への一般的な方向に従う曲線ですが、左に90度でn + 1回転を繰り返し、次にn + 1が右に回転します(n> 0の場合)。
実際、蛇行自体にn
セグメントがあります。
ターンはで示され+
ます。
蛇行の幅(2つの間の距離+
)は、水平線で3(---
)、垂直線で1(|
)です。
以下は、1〜5のサイズnの蛇行曲線の単一セグメントです。
+-------------------+
| |
+---------------+ | +-----------+ |
| | | | | |
+-----------+ | +-------+ | | | +---+ | |
| | | | | | | | | | | |
+-------+ | +---+ | | +---+ | | | +---+ | | |
| | | | | | | | | | | | | |
+---+ +---+ | +---+ | | +-------+ | | +-----------+ | |
| | 1 | | 2 | | 3 | | 4 | | 5
---+ +-------+ +-----------+ +---------------+ +-------------------+ +
チャレンジ:
2つの正の数n
とを与えて、サイズの蛇行曲線のセグメントをm
描きm
ますn
。完全なプログラムまたは関数を作成できます。
入力:
n
> 0曲線のサイズ
m
> 0描画するセグメントの数
出力:
蛇行曲線のASCII表現。
例:
n = 3
m = 2
+-----------+ +-----------+
| | | |
| +---+ | | +---+ |
| | | | | | | |
+---+ | | +---+ | |
| | | |
-----------+ +-----------+ +
n = 2
m = 5
+-------+ +-------+ +-------+ +-------+ +-------+
| | | | | | | | | |
+---+ | +---+ | +---+ | +---+ | +---+ |
| | | | | | | | | |
-------+ +-------+ +-------+ +-------+ +-------+ +
n = 4
m = 4
+---------------+ +---------------+ +---------------+ +---------------+
| | | | | | | |
| +-------+ | | +-------+ | | +-------+ | | +-------+ |
| | | | | | | | | | | | | | | |
| +---+ | | | +---+ | | | +---+ | | | +---+ | |
| | | | | | | | | | | | | | | |
+-------+ | | +-------+ | | +-------+ | | +-------+ | |
| | | | | | | |
---------------+ +---------------+ +---------------+ +---------------+ +
受賞基準:
これはcode-golfであるため、各言語のバイト単位の最短コードが優先されます。時間がある場合は、コードを説明してください。
1
将来の課題に対する提案:最初の図(蛇行が増加する図)をプロットし、グラフィカルな出力を可能にします
—
ルイスメンドー
n
左に曲がっていませんか?
@LuisMendoはい、1-5の画像を作成したとき、その中に良い課題があることに気付きました-正の整数のリストLが与えられ、サイズL(i)のセグメントで曲がりくねった曲線を作成します
—
Galen Ivanov
@LiefdeWenカウントを開始する場所によって異なります。私はそれがだと思う
—
ガレン・イワノフ
n+1
...特に、単一のセグメントの間に、例を見ると