Eu esqueci o dia da toalha
Script PHP para os dois exemplos (erro, formatação da string)
Script php corrigido, a entrada é auto-explicativa
Script PHP com mais comentários / comentários $argv
para ver resultados diferentes
Como você deve saber, 25 de maio é conhecido como Dia da Toalha , devido aos muitos usos que uma toalha pode ter.
Um simples extrato do livro "O Guia do Mochileiro das Galáxias" (pessoalmente, tomei este livro como um "guia do dia a dia" ) afirma:
"Uma toalha é a coisa mais útil que um caroneiro interestelar pode ter. Em parte, tem um grande valor prático".
Se precisar de mais informações sobre toalhas, consulte esta resposta SE.scifi
O desafio
Espero que você faça isso com uma toalha usada como cobertor para as pernas.
Escreva um programa ou função completa em qualquer linguagem de programação válida que aceite duas entradas
size Integer : #The size
message string : #A sentence
Como desenhar uma toalha com esses valores?
Primeiro usosize
:
Desenhe uma toalha, dependendo do tamanho da entrada, ascii-art para a nossa toalha
width = 12*size
#the line that has the "bar" its always present with different sizes
Width is defined as:
from the first | to the second | has to be equal to size*12 including both ||
<- width->
[===| |====]
| 12 chars || 1 height starts here, just after the "bar"
| SIZE = 1 || 2
| || 3 height = 5*size
| || 4
| || 5 height ends here just before the first line |=======|
|==========|| # the lines with the #
|==========|| # are always fixed
""""""""""""| # it means, every towel
| | # always has this 5 rows
"""""""""""" # no matter the size
Segundo, dê a ele message
Você tem que dar uma mensagem, o que é uma toalha sem uma linda mensagem costurada em fio dourado?
Exemplo 1
input: size=1, message="a simple message can stay with size"
width = 12*size
#the line that has the "bar" it's always present with different sizes
#no words allowed at the bar level
[===| |====]
| a simple || 1 height starts here, just after the "bar"
| message || 2
| can stay || 3 height = 5*size
| with size|| 4
| || 5 height ends here just before the first line |=======|
|==========|| # the lines with the #
|==========|| # are always fixed
""""""""""""| # it means, every towel
| | # always has this 5 rows
"""""""""""" # no matter the size
Exemplo 2
input size=2
message="Don't Panic and bring a towel to SE Programming Puzzles and CodeGolf"
The size is 2
That means 24 width and 10 heigth
<- 24 chars width ->
[===| |====]
| Don't Panic and bring|| 1
| a towel to SE || 2
| Programming Puzzles || 3
| and CodeGolf || 4
| || 5
| || 6
| || 7
| || 8
| || 9
| || 10
|======================|| # The lines with the "#"
|======================|| # always present and
""""""""""""""""""""""""| # adapted to
| | # the towel width
"""""""""""""""""""""""" #
Critérios de resposta aceitos
- Este é um codegolf, portanto as regras normais se aplicam.
Regras
Você tem a garantia de que todas as seqüências de entrada caberão no tamanho, portanto, nenhuma entrada será como
size=1; message="This string is just tooooooooooooooooooooo long to fit the width and height of your towel"
.O formato da sequência é com você, se você quiser centralizar as substrings, por exemplo.
Quebras de palavras não são permitidas.
Editar% s
Eu realmente sinto muito por qualquer confusão, porque as toalhas ansii que desenhei não correspondiam aos parâmetros, adicionou um script PHP para os dois exemplos para você verificar as saídas esperadas.
Agradeço também a todas as pessoas que votaram e consideraram meu primeiro desafio: D.
current line + next word
exceder o limite permitido para a sua toalha @Jakob, conforme o script php que eu publiquei.Respostas:
Python 2 ,
223210209204 bytesExperimente online!
fonte
JavaScript (Node.js) , 375 bytes
Este é o pior envio que você receberá, mas pelo menos tentei xD metade dos bytes são espaços
Experimente online!
fonte
JavaScript (Node.js) ,
347 345 343 337 334 328326 bytesExperimente online!
Explicação:
fonte
Carvão , 79 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
Calcule o tamanho da toalha.
Desenhe a toalha.
Faça um loop sobre cada palavra da mensagem.
Imprima cada palavra sem exceder a largura.
fonte
V ,
142,128,121, 119 bytesExperimente online!
fonte
this
você puder salvarn Bytes
" .... mas eu não posso ... ainda: D.