W tej pikselowej czcionce wielkich liter alfabetu wszystkie znaki mają 5 jednostek szerokości i 5 wysokości.
███ ████ ███ ████ █████ █████ ████ █ █ █████ █ █ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██
█████ ████ █ █ █ ████ ████ █ ██ █████ █ █ ███ █ █ █ █
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ████ ███ ████ █████ █ ████ █ █ █████ ███ █ █ █████ █ █
█ █ ███ ████ ███ ████ ████ █████ █ █ █ █ █ █ █ █ █ █ █████
██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ █ █ █ ████ █ █ ████ ███ █ █ █ █ █ █ █ █ █ █ █
█ ██ █ █ █ █ ██ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █ ███ █ ████ █ █ ████ █ ███ █ █ █ █ █ █ █████
Jak widać, istnieje również 1 jednostka odstępu między literami i między wierszami. Każda litera może więc zająć do 6 × 6 jednostek miejsca.
Załóżmy, że zamiast używać znaku pełnego bloku ( █) do bezpośredniego formowania kształtów liter, chcieliśmy użyć innych liter w tej samej czcionce . Polega to na 6-krotnym zwiększeniu wymiarów tekstu, dzięki czemu litery wykonane z pełnych bloków mogą być używane jako zamienniki pełnych bloków w większym tekście.
Jeśli to nie miało sensu, mam nadzieję, że ten przykład będzie. Oto A wykonane z B przy użyciu czcionki pikselowej:
████ ████ ████
█ █ █ █ █ █
████ ████ ████
█ █ █ █ █ █
████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
█ █ █ █ █ █ █ █ █ █
████ ████ ████ ████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
████ ████
█ █ █ █
████ ████
█ █ █ █
████ ████
B są zbudowane z pełnych bloków, a A z B. Zauważ, że B wciąż mają jedną jednostkę między nimi poziomo i pionowo.
Możemy rozszerzyć ten pomysł, używając słów zamiast liter. Oto „WODA” wykonana z „POŻARU”:
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █
█████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████
█ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████
█ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █
█████ █████ ████ █████ █████ █████ ████ █████ █████ █████ ████ █████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
████ █ ████ ████ ████ █ ████ ████ ████ █ ████ ████
█ █ █ █ █ █ █ █ █ █ █ █ █ █ █
█ █████ █ █ █████ █ █████ █ █ █████ █ █████ █ █ █████
Zauważ, jak „FIRE” pojawia się wielokrotnie w każdym wierszu i zawsze w porządku, bez względu na to, ile miejsca jest między literami. Trzy najbardziej prawostronne przypadki „POŻARU” zostały wcześnie odcięte ze względu na kształt liter „WODY”.
Tę ideę można rozszerzyć jeszcze bardziej, używając tych słów wykonanych ze słów, aby utworzyć słowa złożone ze słów złożonych ze słów , a nawet słów złożonych ze słów złożonych ze słów . Teoretycznie nie ma ograniczeń.
Inny przykład umieszczałby ten post powyżej limitu 30 000 znaków, ale możesz zobaczyć, co należy rozumieć przez „słowa złożone ze słów utworzonych ze słów”, uruchamiając ten fajny fragment kodu stosu. Po prostu pozostaw parametry domyślne i naciśnij „Idź!”. Powinieneś zobaczyć słowo „PSY” ze słowa „KOT” ze słowa „MYSZ”.
Wpisanie dowolnej listy oddzielonych spacjami słów zawierających tylko wielkie litery w polu tekstowym spowoduje utworzenie pierwszego słowa złożonego z drugiego słowa złożonego z trzeciego, złożonego z czwartego, wykonanego z ... itd.
OSTRZEŻENIE: Wpisanie więcej niż 4, a nawet 3 słów spowoduje powstanie DUŻEGO tekstu i zajmie DŁUGO czasu. Może to spowodować awarię przeglądarki / komputera / samochodu.
Wyzwanie
Celem tego wyzwania jest odzwierciedlenie tego, co robi Fragment stosu przy jak najmniejszej liczbie postaci.
Musisz napisać program, który pobiera oddzielony spacjami ciąg słów zawierający tylko wielkie litery i wypisuje pierwsze słowo „wykonane z” drugiego „wykonane z” trzeciego i tak dalej, używając pikselowej czcionki podanej powyżej.
Pole wyboru „Zwykły ASCII” i funkcje rozmiaru czcionki fragmentu nie muszą być obsługiwane w Twoim programie. Odzwierciedlenie transformacji z list słów do słów utworzonych ze słów jest głównym punktem i jedynym wymogiem.
Detale
Dane wejściowe powinny pochodzić ze stdin, wiersza poleceń, lub możesz po prostu napisać funkcję, która pobiera ciąg.
Możesz założyć, że dane wejściowe są zawsze prawidłowe, tzn. Ciąg słów złożony z wielkich liter, oddzielonych dokładnie jedną spacją, bez spacji wiodących i końcowych.
Dane wyjściowe powinny przejść do standardowego wyjścia (lub podobnej alternatywy) lub do pliku o wybranej nazwie.
Wyjście powinno składać się całkowicie ze znakami pustymi kosmicznych , znaków pełnej przestrzeni i nowych linii.
- Te postacie pusty / pełnej przestrzeń powinna być albo pełna przestrzeń i blok (
,█), lub Okres X (.,X), odpowiednio.
- Te postacie pusty / pełnej przestrzeń powinna być albo pełna przestrzeń i blok (
Dane wyjściowe nie powinny zawierać żadnych wiodących kolumn zawierających tylko znaki pustej przestrzeni , chociaż dozwolona jest dowolna kombinacja końcowych znaków pustej przestrzeni w dowolnych wierszach.
Jest to dozwolone:
X...X.XXXXX.. X...X.X X.X.X.XXXX.... X.X.X.X.. .X.X..XXXXX..Ale to nie jest:
.X...X.XXXXX.. .X...X.X .X.X.X.XXXX.... .X.X.X.X.. ..X.X..XXXXX..
Nie powinno być żadnych początkowych ani końcowych wierszy zawierających tylko znaki pustej przestrzeni . Pojedynczy znak nowej linii jest opcjonalnie dozwolony.
Oto bardziej przyjazna dla łańcucha wersja czcionki:
.XXX.
X...X
XXXXX
X...X
X...X
XXXX.
X...X
XXXX.
X...X
XXXX.
.XXX.
X...X
X....
X...X
.XXX.
XXXX.
X...X
X...X
X...X
XXXX.
XXXXX
X....
XXXX.
X....
XXXXX
XXXXX
X....
XXXX.
X....
X....
.XXXX
X....
X..XX
X...X
.XXXX
X...X
X...X
XXXXX
X...X
X...X
XXXXX
..X..
..X..
..X..
XXXXX
....X
....X
....X
X...X
.XXX.
X...X
X..X.
XXX..
X..X.
X...X
X....
X....
X....
X....
XXXXX
X...X
XX.XX
X.X.X
X...X
X...X
X...X
XX..X
X.X.X
X..XX
X...X
.XXX.
X...X
X...X
X...X
.XXX.
XXXX.
X...X
XXXX.
X....
X....
.XXX.
X...X
X...X
X..XX
.XXXX
XXXX.
X...X
XXXX.
X..X.
X...X
.XXXX
X....
.XXX.
....X
XXXX.
XXXXX
..X..
..X..
..X..
..X..
X...X
X...X
X...X
X...X
.XXX.
X...X
X...X
.X.X.
.X.X.
..X..
X...X
X...X
X.X.X
X.X.X
.X.X.
X...X
.X.X.
..X..
.X.X.
X...X
X...X
.X.X.
..X..
..X..
..X..
XXXXX
...X.
..X..
.X...
XXXXX
Punktacja
To jest golf golfowy, więc wygrywa najkrótsze przesłanie w bajtach . Każde wystąpienie pełnego bloku ( █) może być liczone jako 1 bajt zamiast 3, więc przesyłanie, którego używa X, nie ma przewagi.
$('#question pre, .answer pre').css('line-height',1)


javascript:W pasku adresu i wklejenie go), aby ASCII tutaj dużo, dużo łatwiejsze do odczytania:$('#question pre').css('line-height',1). Rezultat: i.stack.imgur.com/XmB8C.png