Czy nie uważasz, że czytanie prostego tekstu nie jest wystarczająco atrakcyjne? Wypróbuj nasz
##### ### ### ##### ##### ##### ##### # # ##### #
# # # # # # # # # # # # #
##### ### # # # # #### # # #
# # # # # # # # # # # #
# # ### ### ##### ##### # ##### # # # #
O wiele więcej fantazji, prawda? Ale pisanie ręczne jest dość długie, byłoby wspaniale, gdyby ktoś zrobił program, który to dla mnie robi!
Twoim zadaniem , jeśli zgłosisz się do pomocy, będzie napisanie programu lub funkcji, która pobiera ciąg zawierający [a-zA-Z\s\n]
tylko i wyprowadzi (lub zwróci) zapis tego ascii!
Aby sformatować dane wyjściowe, musisz użyć następującego alfabetu:
##### #### ### #### ##### ##### ### # # ##### ##### # # # # #
# # # # # # # # # # # # # # # # # # ## ##
##### #### # # # #### #### # ## ##### # # ### # # # #
# # # # # # # # # # # # # # # # # # # # # #
# # #### ### #### ##### # ### # # ##### ### # # ##### # #
# # ### #### ### #### ### ##### # # # # # # # # # # #####
## # # # # # # # # # # # # # # # # # # # # # #
# # # # # #### # # #### ### # # # # # # # # # # #
# ## # # # # ## ## # # # # # # ## ## # # # #
# # ### # #### # # ### # ### # # # # # # #####
Przestrzeń:
|
| it's a 5x5 square of spaces
| but had to pad it with |s to make it appear in this post
|
|
Ponieważ jest to czcionka o stałej szerokości, znak spacji jest również otoczony spacjami, co powoduje powstanie 7-szerokości odstępu między dwiema literami.
a b
1234567 -- these numbers are just for the example, you don't have to output them
##### ####
# # # #
##### ####
# # # #
# # ####
a b
1234567890123
##### ####
# # # #
##### ####
# # # #
# # ####
Gdy napotkasz nowy wiersz, jak na wejściu
ascii
text
Pamiętaj, aby oddzielić dwa bloki tekstu przynajmniej jedną pustą linią
##### ### ### ##### #####
# # # # # # #
##### ### # # #
# # # # # # #
# # ### ### ##### #####
##### ##### # # #####
# # # # #
# #### # #
# # # # #
# ##### # # #
Można również zastąpić #
s dowolnym innym znakiem, o ile znajduje się on w zakresie drukowalnym ASCII i nie jest spacją. Możesz na przykład użyć A
s dla litery A, B
litery B i tak dalej.
Ponieważ jest to golf golfowy (a ponadto złożoność kolmogorowa ), zwycięskie zgłoszenie będzie tym, które rozwiąże to wyzwanie w jak najmniejszym bajcie, baw się dobrze!
źródło
Odpowiedzi:
Python 3, 375 bajtów
Zobacz ten kod działający na ideone.com.
Ten sam kod, ale jakoś ładnie wcięty, sformatowany i skomentowany:
Zdecydowałem się także na kodowanie podstawowe 36, ponieważ jest to najwyższa podstawowa wbudowana
int()
obsługa języka Python . Oto krótki skrypt napisany przeze mnie w języku Python 3, który konwertuje definicje czcionek jak w pytaniu na kody podstawowe 36: Mój konwerter na ideone.comWynik składa się z znaku
1
jako włączonego piksela i spacjijako wyłączonego piksela. Oto jeden przykładowy przebieg:
Dane wejściowe (podział linii jako
\n
):Wynik:
źródło
Clojure, 552 bajtów
Każda litera w ascii jest reprezentowana jako ciąg binarny z # - 1, spacją - 0. Następnie jest konwertowany do bazy 36, tak że do zapisania + „:” potrzeba tylko 5 znaków, aby poinformować Clojure, że należy ją traktować jako symbol. Następnie dane wejściowe są dzielone przez symbol nowej linii i dla każdej linii przekształcamy literę w 36 bazach z powrotem na bazę binarną i dostajemy pierwsze symbole [0: 5], dodajemy symbole nowej linii, otrzymujemy kolejne [5:10] symbole i tak dalej.
Możesz zobaczyć, jak działa tutaj - https://ideone.com/y99ST5
źródło
SOGL , 137 bajtów (niekonkurencyjny)
Wyjaśnienie:
Uwaga: obecnie ten język nie akceptuje tak naprawdę wielowierszowego ciągu wejściowego, więc poprosiłem o numer i przeczytałem kolejne x wierszy jako dane wejściowe.
Pierwszy ciąg to
skompresowany przy użyciu niestandardowego słownika, który używa „” i „-” (kompresja ma specjalny tryb z „\ n - | / _” dostępnym, więc jeszcze większa kompresja!)
Zawiera 25 znaków na znak ascii w kolejności alfabetu. są one uporządkowane od góry do dołu, a następnie w prawo.
znaki idą jak
i w ten sam sposób
┼
dodaje się je do tablicy.źródło
foo\nbar
na multilinii wejśćPowerShell,
261253 bajtówSkrypt testowy:
Wynik:
Uwaga:
$s|% *per|% t*y
jest skrótem do$s|% toUpper|% toCharArray
O przestrzeni kosmicznej:
Dla każdego znaku ciągu źródłowego skrypt pobiera symbol (maskę bitową) z ciągu magicznego
'_ONO__NQ...'
. Indeks wykracza jednak poza magiczny ciąg dla spacji. W takim przypadku maska bitowa$c
staje się pusta. Oznacza zero dla wszystkich bitów.O pustej linii:
Skrypt wyświetla 6 wierszy dla każdego symbolu zamiast 5. Indeks wykracza poza magiczny ciąg również dla pustej linii. Tak więc wiersz 6 zawiera tylko spacje.
Najlepiej widać to, drukując inną postać zamiast spacji. Na przykład
·
.źródło
C (gcc) , 326 bajtów
Pierwsze dźgnięcie w to. Musiałem dołączyć stdio.h i string.h na TIO, ale nie było to konieczne w MinGW.
Wypróbuj online!
źródło
JavaScript (ES6),
292287278 bajtówPróbny
Pokaż fragment kodu
źródło