Aux fins de cette question, une courbe sinueuse est une courbe qui suit la direction générale de gauche à droite, mais effectue à plusieurs reprises n + 1 tours à 90 degrés vers la gauche, puis n + 1 tours vers la droite (pour n> 0).
En fait, le méandre lui-même aura des n
segments.
Les tours sont indiqués par +
.
La largeur des méandres (la distance entre deux +
) est de 3 à l'horizon ( ---
) et de 1 à la verticale ( |
)
Voici les segments simples d'une courbe sinueuse avec des tailles n de 1 à 5:
+-------------------+
| |
+---------------+ | +-----------+ |
| | | | | |
+-----------+ | +-------+ | | | +---+ | |
| | | | | | | | | | | |
+-------+ | +---+ | | +---+ | | | +---+ | | |
| | | | | | | | | | | | | |
+---+ +---+ | +---+ | | +-------+ | | +-----------+ | |
| | 1 | | 2 | | 3 | | 4 | | 5
---+ +-------+ +-----------+ +---------------+ +-------------------+ +
Défi:
Étant donné deux nombres positifs n
et m
, dessinez des m
segments d'une courbe sinueuse avec la taille n
. Vous pouvez écrire un programme complet ou une fonction.
Contribution:
n
> 0 La taille de la courbe
m
> 0 Nombre de segments à dessiner
Production:
Une représentation ASCII de la courbe sinueuse.
Exemples:
n = 3
m = 2
+-----------+ +-----------+
| | | |
| +---+ | | +---+ |
| | | | | | | |
+---+ | | +---+ | |
| | | |
-----------+ +-----------+ +
n = 2
m = 5
+-------+ +-------+ +-------+ +-------+ +-------+
| | | | | | | | | |
+---+ | +---+ | +---+ | +---+ | +---+ |
| | | | | | | | | |
-------+ +-------+ +-------+ +-------+ +-------+ +
n = 4
m = 4
+---------------+ +---------------+ +---------------+ +---------------+
| | | | | | | |
| +-------+ | | +-------+ | | +-------+ | | +-------+ |
| | | | | | | | | | | | | | | |
| +---+ | | | +---+ | | | +---+ | | | +---+ | |
| | | | | | | | | | | | | | | |
+-------+ | | +-------+ | | +-------+ | | +-------+ | |
| | | | | | | |
---------------+ +---------------+ +---------------+ +---------------+ +
Critères gagnants:
Il s'agit de code-golf , donc le code le plus court en octets dans chaque langue l'emporte. Veuillez expliquer votre code, si vous avez le temps de le faire.
n
virages à gauche?
n+1
en regardant les exemples, en particulier entre les segments simples ..