Para o propósito desta pergunta, uma curva sinuosa é aquela que segue a direção geral da esquerda para a direita, mas faz repetidamente n + 1 voltas a 90 graus à esquerda e depois n + 1 vira à direita (para n> 0).
De fato, o meandro terá n
segmentos.
Os turnos são indicados com +
.
A largura dos meandros (a distância entre dois +
) é 3 no horizonte ( ---
) e 1 na vertical ( |
)
Aqui estão os segmentos únicos de uma curva sinuosa com tamanhos n de 1 a 5:
+-------------------+
| |
+---------------+ | +-----------+ |
| | | | | |
+-----------+ | +-------+ | | | +---+ | |
| | | | | | | | | | | |
+-------+ | +---+ | | +---+ | | | +---+ | | |
| | | | | | | | | | | | | |
+---+ +---+ | +---+ | | +-------+ | | +-----------+ | |
| | 1 | | 2 | | 3 | | 4 | | 5
---+ +-------+ +-----------+ +---------------+ +-------------------+ +
Desafio:
Dados dois números positivos n
e m
, desenhe m
segmentos de uma curva sinuosa com o tamanho n
. Você pode escrever um programa completo ou uma função.
Entrada:
n
> 0 O tamanho da curva
m
> 0 Número de segmentos para desenhar
Resultado:
Uma representação ASCII da curva sinuosa.
Exemplos:
n = 3
m = 2
+-----------+ +-----------+
| | | |
| +---+ | | +---+ |
| | | | | | | |
+---+ | | +---+ | |
| | | |
-----------+ +-----------+ +
n = 2
m = 5
+-------+ +-------+ +-------+ +-------+ +-------+
| | | | | | | | | |
+---+ | +---+ | +---+ | +---+ | +---+ |
| | | | | | | | | |
-------+ +-------+ +-------+ +-------+ +-------+ +
n = 4
m = 4
+---------------+ +---------------+ +---------------+ +---------------+
| | | | | | | |
| +-------+ | | +-------+ | | +-------+ | | +-------+ |
| | | | | | | | | | | | | | | |
| +---+ | | | +---+ | | | +---+ | | | +---+ | |
| | | | | | | | | | | | | | | |
+-------+ | | +-------+ | | +-------+ | | +-------+ | |
| | | | | | | |
---------------+ +---------------+ +---------------+ +---------------+ +
Critérios de vitória:
Isso é código-golfe , então o código mais curto em bytes em cada idioma vence. Por favor, explique seu código, se você tiver tempo para fazê-lo.
n
virar à esquerda?
n+1
quando se olha para os exemplos, especialmente entre os únicos segmentos ..