To wyzwanie jest cut'n wklej od Powiększ ASCII sztuki , ale odwrócony , używając PetSCII oparte pół-bloków znaków:
string=" ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█"
Więc celem jest zmniejszenie przez 1/2
zgłoszone ascii-art . Na przykład z ciągu:
OOOOOO OOOOOO OOOOOO OOOOOOO OOOOOO OOOOOO OO OOOOOOO
OO OO OO OO OO OO OO OO OO OO OO
OO OO OO OO OO OOOOO OO OOO OO OO OO OOOOO
OO OO OO OO OO OO OO OO OO OO OO OO
OOOOOO OOOOOO OOOOOO OOOOOOO OOOOOO OOOOOO OOOOOOO OO
musisz renderować:
▟▀▀▘▟▀▀▙▐▛▀▙▐▛▀▀ ▗▛▀▀ ▟▀▀▙▐▌ ▐▛▀▀
█ █ █▐▌ █▐▛▀ ▐▌ ▜▌█ █▐▌ ▐▛▀
▝▀▀▘▝▀▀▘▝▀▀▘▝▀▀▀ ▀▀▀ ▝▀▀▘▝▀▀▀▝▘
(lub nawet:
▗▛▀▀▗▛▀▜▖█▀▜▖█▀▀▘ ▟▀▀▘▗▛▀▜▖█ █▀▀▘
▐▌ ▐▌ ▐▌█ ▐▌█▀▘ █ ▝█▐▌ ▐▌█ █▀▘
▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀▘ ▝▀▀▘ ▀▀▀ ▀▀▀▘▀
;-)
lub gdzie orurowanie:
wget -O - https://codegolf.stackexchange.com/q/19123/9424 |
sed -ne '/<pre><code>/,/<\/code><\/pre>/{//{/\//q};s/<pre><code>//;p}'
('l2v2l6v2'+ 'e1l1v3l2'+
'v3e1v7e1v7e1v7e1l2v6e1l4v5'+
'e1l6v4e1l8v3e1l7l3v2e1l9l3v1')
.replace(/[lve]\d/g,function
(c){return Array(-~c[1]).
join({l:' ',v:'Love'
,e:'\n'}[c[0
]])})
mógłby dać:
▗▟█████▙▟█████▄
▜█████████████▛▘
▝▀███▙▛█████▀
▝▀▜██▀▘
Niektóre próbki:
Z (przybliżonymi) tymi samymi zasadami:
- Dane wejściowe ze STDIN lub pliku
- Każdy przesłany znak musi być reprezentowany, tylko białe znaki muszą pozostać puste .
- To także golf golfowy , więc wygrywa najniższy wynik. Wynik obliczany jest jako:
+1
według znaków, należy liczyć w znakach, a nie w bajtach, tj .:s=' ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█'
policz 20 znaków, a nie 52 !!-10
dla wyjaśnienia;+20
do korzystania z zewnętrznego narzędzia czcionek lub biblioteki.
xterm -xrm 'XTerm*renderFont:false' &
do otwierania okna konsoli, w którym można to poprawnie wyświetlić.Odpowiedzi:
GolfScript (90 znaków)
Wiele z tego dotyczy manipulacji tablicami poszarpanymi. Paskudny przypadek testowy:
zawiera 3 różne siatki 2x2 z tylko jedną z 4 komórek zawierających w ogóle dowolny znak.
Co gorsza,
zip
transpozycja podzielenia kolumn na pary daje taki sam wynik dla["xx" "xxx"]zip
i["xxx" "xx"]zip
. Dlatego zaczynam od wypełnienia, aby upewnić się, że wszystkie linie mają tę samą parzystą długość i że jest parzysta liczba linii.Zauważ, że ten program zakłada, że interpreter będzie traktował „▗▖▄▝▐▞▟▘▚▌▙▀▜▛█” jako ciąg o długości 48, mimo że zgodnie z instrukcjami w pytaniu liczę go jako 16 znaków plus ograniczniki.
Przetestowałem to najlepiej, jak potrafiłem, ale nie mogę znaleźć czcionki o jednolitej przestrzeni, która właściwie renderuje te znaki.
źródło
zip
na poszarpanych tablicach i jestem dość zaskoczony tym, co wydaje się robić na np["##" "###"]
. Będę musiał przemyśleć moje podejście.Perl 6 , 159 znaków (192 bajty)
Wypróbuj online!
źródło
Bash (203 znaków)
lub
źródło
Perl (268 znaków)
lub
źródło