Pegue uma bandeira, como esta:
-----------------------------
| | |
| | |
|=============+=============|
| | |
| | |
-----------------------------
E uma entrada numérica: o "comprimento da onda"
Digamos que o comprimento da onda fosse 5. Em seguida, a cada 5 caracteres ao longo da linha desde o início, substitua o próximo caractere por -
com \
e mude todos os caracteres após uma linha para baixo. Repita isso até o fim. Você acaba com:
-----\
| -----\
| -----\
|===== | -----\
| ====== | -----
| ==+=== |
-----\ | ====== |
-----\ | ====|
-----\ |
-----\ |
-----
Se você não conseguir fazer uma onda completa no final, a bandeira estará concluída. Apenas permaneça plano até o fim.
Você pode assumir que todas as linhas têm o mesmo comprimento e que as linhas superior e inferior são compostas inteiramente por -
(0x2D) e o restante dos caracteres está dentro !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
ou é um espaço ( ). (Portanto, o valor ASCII é
x
onde 31 < x < 127
)
A bandeira terá pelo menos 3 de altura e 3 de largura.
O comprimento da onda será um número inteiro não negativo (> = 0).
(Você também pode ter o comprimento de onda 1 como o menor comprimento de onda, portanto o exemplo acima teria o comprimento de onda 6. Isso é bom.)
Seu sinal de E / S pode ser como matrizes de linhas ou uma string com várias linhas.
O sinalizador de saída pode ter espaços à direita, mas só pode ter espaços à esquerda, desde que seja o mesmo em todos os sinalizadores. O espaço à direita em um sinalizador de entrada pode ser excluído.
Pontuação
Isso é código-golfe, então a solução mais curta, em bytes, vence.
Casos de teste
---
abc
---
2
--\
abc
--\
-----
| + |
-----
10
-----
| + |
-----
---------------------------------------
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& .\^/. &&&&&&|
|&&&&&& . | | . &&&&&&|
|&&&&&& |\| |/| &&&&&&|
|&&&&&& .--' '--. &&&&&&|
|&&&&&& \ / &&&&&&|
|&&&&&& > < &&&&&&|
|&&&&&& '~|/~~|~~\|~' &&&&&&|
|&&&&&& | &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
---------------------------------------
12
------------\
|&&&&&& ------------\
|&&&&&& ------------\
|&&&&&& &&&&&&|
|&&&&&& &&&&&&|
|&&&&&& .\^/. &&&&&&|
|&&&&&& . | | . &&&&&&|
|&&&&&& . |\| |/| &&&&&&|
|&&&&&& --' '-- &&&&&&|
|&&&&&& \ /. &&&&&&|
|&&&&&& > < &&&&&&|
|&&&&&& '~|/~~|~~\|~' &&&&&&|
|&&&&&& | &&&&&&|
|&&&&&& &&&&&&|
------------\ &&&&&&|
------------\ &&&&&&|
------------\
-----------------------
|-._`-._ :| |: _.-'_.-|
| `-._`:| |:`_.-' |
|-------`-' '-'-------|
|------_.-. .-._------|
| _.-'_.:| |:._`-._ |
|-'_.-' :| |: `-._`-|
-----------------------
4
----\
|-._`----\
| `-._ :----\
|-----._`:| |: ----\
|-------`-| |:`_.-'_---
| _.--_.-' '-'_.-' .-|
|-'_.-'_.:. .-.----- |
----\-' :| |:._------|
----\| |: _`-._--|
----\ `-._ |
----\`-|
---
---------------
---------------
---------------
---------------
---------------
5
-----\
-----------\
---------------
---------------
-----\---------
-----\---
---
-------------------------------------------
|* * * * * |##########################|
| * * * * *| |
|* * * * * |##########################|
| * * * * *| |
|* * * * * |##########################|
| * * * * *| |
|* * * * * |##########################|
|--------------- |
|#########################################|
| |
|#########################################|
| |
|#########################################|
-------------------------------------------
0
\
|\
|*\
| \
|** \
| *\
|** \
| ** \
|** *\
|- ** \
|#- ** \
| #-** *\
|# #- ** \
| # #- ** \
\# # #-** *\
\# # #- ** \
\# # #- **|\
\# # #-** |#\
\# # #- **| #\
\# # #- |# #\
\# # #-**| # #\
\# # #- |# # #\
\# # #-| # # #\
\# # #-# # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # #\
\# # # # # # |
\# # # # # #|
\# # # # # |
\# # # # #|
\# # # # |
\# # # #|
\# # # |
\# # #|
\# # |
\# #|
\# |
\#|
\|
\
fonte
Respostas:
05AB1E ,
25232625 bytes-2 graças a Adnan
-1 graças a Emigna
+3 obrigado a Jonathan Allan (obrigado por dedicar seu tempo à captura dessa invalidez!)
Experimente online!
Isso é indexado em 1 em vez de 0, +2 bytes, se isso não estiver correto.
Emigna / Adnan / Anyone - Tem que haver uma solução melhor para substituir essas inclinações, mas estou perplexo.
fonte
ú
é o mesmo queð×ì
:)Pitão , 35 bytes
Experimente online!
fonte
Python 2 , 129 bytes
Experimente online!
fonte
Gelatina , 29 bytes
Os sinalizadores de entrada e saída são listas de linhas.
O comprimento da onda é 1 indexado.
Sempre produz uma linha de espaços.
(tudo isso acima é explicitamente permitido na pergunta postada)
Experimente online! (rodapé para deixar o IO bonito - pega e recebe sinalizadores como texto de várias linhas)
Quão?
Um método bastante semelhante à resposta 05ab1e da carusocomputing , que eu não consegui jogar mais.
fonte
MATL , 31 bytes
Experimente online! Ou verifique todos os casos de teste: 1 , 2 , 3 , 4 , 5 , 6 , 7 .
fonte
-
com o[\]
?JavaScript (ES6), 175 bytes
AE / S é como uma sequência delimitada por nova linha. A saída inclui uma nova linha líder; isso pode ser removido a um custo de 3 bytes. Eu tentei calcular a string de saída diretamente, mas isso me levou ... 176 bytes:
AE / S é como uma matriz de cadeias.
fonte
PHP,
168 164 187 172 167 153 150 152149 bytespega o sinalizador do arquivo estático
a
e o comprimento da onda (mínimo 1) de STDIN.Execute como pipe
php -nr
ou experimente online .demolir
fonte
$z&&$z!=$r-1
deve ser equivalente a$z%($r-1)
economizar 3 bytes.