Für die Zwecke dieser Frage ist eine mäanderförmige Kurve eine Kurve, die der allgemeinen Richtung von links nach rechts folgt, jedoch wiederholt n + 1 Umdrehungen um 90 Grad nach links und dann n + 1 Umdrehungen nach rechts durchführt (für n> 0).
Tatsächlich wird der Mäander selbst n
Segmente haben.
Die Windungen sind mit gekennzeichnet +
.
Die Breite der Mäander (der Abstand zwischen zwei Mäandern +
) beträgt 3 am Horizont ( ---
) und 1 in der Vertikalen ().|
).
Hier sind die einzelnen Segmente eine mäanderförmige Kurve mit den Größen n von 1 bis 5:
+-------------------+
| |
+---------------+ | +-----------+ |
| | | | | |
+-----------+ | +-------+ | | | +---+ | |
| | | | | | | | | | | |
+-------+ | +---+ | | +---+ | | | +---+ | | |
| | | | | | | | | | | | | |
+---+ +---+ | +---+ | | +-------+ | | +-----------+ | |
| | 1 | | 2 | | 3 | | 4 | | 5
---+ +-------+ +-----------+ +---------------+ +-------------------+ +
Herausforderung:
Zeichnen Sie bei zwei positiven Zahlen n
und Segmenten einer mäanderförmigen Kurve mit der Größem
m
n
. Sie können ein vollständiges Programm oder eine Funktion schreiben.
Eingang:
n
> 0 Die Größe der Kurve
m
> 0 Anzahl der zu zeichnenden Segmente
Ausgabe:
Eine ASCII-Darstellung der Mäanderkurve.
Beispiele:
n = 3
m = 2
+-----------+ +-----------+
| | | |
| +---+ | | +---+ |
| | | | | | | |
+---+ | | +---+ | |
| | | |
-----------+ +-----------+ +
n = 2
m = 5
+-------+ +-------+ +-------+ +-------+ +-------+
| | | | | | | | | |
+---+ | +---+ | +---+ | +---+ | +---+ |
| | | | | | | | | |
-------+ +-------+ +-------+ +-------+ +-------+ +
n = 4
m = 4
+---------------+ +---------------+ +---------------+ +---------------+
| | | | | | | |
| +-------+ | | +-------+ | | +-------+ | | +-------+ |
| | | | | | | | | | | | | | | |
| +---+ | | | +---+ | | | +---+ | | | +---+ | |
| | | | | | | | | | | | | | | |
+-------+ | | +-------+ | | +-------+ | | +-------+ | |
| | | | | | | |
---------------+ +---------------+ +---------------+ +---------------+ +
Gewinnkriterien:
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes in jeder Sprache. Bitte erläutern Sie Ihren Code, wenn Sie Zeit dazu haben.
n
links abbiegen?
n+1
bei der Betrachtung der Beispiele, vor allem zwischen den einzelnen Segmenten ..