Zapomniałem dnia na ręczniki
Skrypt PHP dla obu przykładów (błąd, formatowanie ciągu)
Poprawiony skrypt php, dane wejściowe są zrozumiałe
Skrypt PHP z większą ilością komentarzy / komentarzy, $argv
aby zobaczyć różne wyniki
Jak zapewne wiesz, 25 maja jest znany jako Dzień Ręczników , ze względu na wiele zastosowań, które może mieć ręcznik.
Prosty fragment książki „Przewodnik autostopem po galaktyce” (osobiście wziąłem tę książkę jako „codzienny przewodnik” ) stwierdza:
„Ręcznik to najbardziej użyteczna rzecz, jaką może mieć międzygwiezdny autostopowicz. Częściowo ma on wielką wartość praktyczną”.
Jeśli potrzebujesz więcej informacji na temat ręczników, sprawdź tę odpowiedź SE.scifi
Wyzwanie
Mam nadzieję, że zrobisz to z ręcznikiem jako kocem na nogi.
Napisz pełny program lub funkcję w dowolnym poprawnym języku programowania, który wymaga dwóch danych wejściowych
size Integer : #The size
message string : #A sentence
Jak narysować ręcznik o tych wartościach?
Pierwsze użyciesize
:
Narysuj ręcznik w zależności od wielkości wejściowej, ascii-art dla naszego ręcznika
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
Po drugie, daj mu message
Musisz przekazać mu wiadomość, czym jest ręcznik bez pięknej wiadomości wszytej w złotą nić?
Przykład 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
Przykład 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
"""""""""""""""""""""""" #
Zaakceptowane kryteria odpowiedzi
- To jest codegolf, więc obowiązują normalne zasady.
Zasady
Masz gwarancję, że wszystkie ciągi wejściowe będą pasować do rozmiaru, więc żadne dane wejściowe nie będą podobne
size=1; message="This string is just tooooooooooooooooooooo long to fit the width and height of your towel"
.Format ciągu zależy od Ciebie, jeśli chcesz na przykład wyśrodkować podłańcuchy.
Podziały słów są niedozwolone.
Edycje
Naprawdę przepraszam za jakiekolwiek zamieszanie, ponieważ narysowane przeze mnie ręczniki ansii nie pasowały do parametrów, dodałem skrypt PHP dla obu przykładów , aby sprawdzić oczekiwane wyniki.
Dziękuję również wszystkim osobom, które głosowały i rozważały moje pierwsze wyzwanie: D.
current line + next word
przekroczy limit dozwolony dla twojego ręcznika @Jakob, jak decyduje skrypt php, który opublikowałem.Odpowiedzi:
Python 2 ,
223210209204 bajtówWypróbuj online!
źródło
JavaScript (Node.js) , 375 bajtów
To najgorsze przesłanie, jakie dostaniesz, ale przynajmniej spróbowałem xD połowa bajtów to spacje
Wypróbuj online!
źródło
JavaScript (Node.js) ,
347 345 343 337 334 328326 bajtówWypróbuj online!
Objaśnienie:
źródło
Węgiel drzewny , 79 bajtów
Wypróbuj online! Link jest do pełnej wersji kodu. Wyjaśnienie:
Oblicz rozmiar ręcznika.
Narysuj ręcznik.
Pętla nad każdym słowem wiadomości.
Wydrukuj każde słowo bez przepełnienia szerokości.
źródło
V ,
142,128,121, 119 bajtówWypróbuj online!
źródło
this
, możesz zapisaćn Bytes
” ... ale nie mogę ... jeszcze: D.