Diese Herausforderung ist eine Paste Cut'n aus Vergrößern ASCII - Art , sondern umgekehrt , mit PETSCII basierten Halbblock Zeichen:
string=" ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█"
Das Ziel ist es also, durch 1/2
eingereichte ASCII -Kunst zu reduzieren . Zum Beispiel aus der Zeichenfolge:
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
Sie müssen rendern:
▟▀▀▘▟▀▀▙▐▛▀▙▐▛▀▀ ▗▛▀▀ ▟▀▀▙▐▌ ▐▛▀▀
█ █ █▐▌ █▐▛▀ ▐▌ ▜▌█ █▐▌ ▐▛▀
▝▀▀▘▝▀▀▘▝▀▀▘▝▀▀▀ ▀▀▀ ▝▀▀▘▝▀▀▀▝▘
(oder auch:
▗▛▀▀▗▛▀▜▖█▀▜▖█▀▀▘ ▟▀▀▘▗▛▀▜▖█ █▀▀▘
▐▌ ▐▌ ▐▌█ ▐▌█▀▘ █ ▝█▐▌ ▐▌█ █▀▘
▀▀▀ ▀▀▀ ▀▀▀ ▀▀▀▘ ▝▀▀▘ ▀▀▀ ▀▀▀▘▀
;-);
oder wo Rohrleitungen:
wget -O - /codegolf//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
]])})
könnte geben:
▗▟█████▙▟█████▄
▜█████████████▛▘
▝▀███▙▛█████▀
▝▀▜██▀▘
Einige Beispiele:
Mit (ungefähr) gleichen Regeln:
- Eingabe von STDIN oder Datei
- Jedes eingereichte Zeichen muss dargestellt werden, nur Leerzeichen müssen leer bleiben .
- Dies ist auch Code-Golf , also gewinnt die niedrigste Punktzahl. Die Punktzahl wird berechnet als:
+1
von Zeichen, wird gezählt in Zeichen, nicht in Bytes dh:s=' ▝▘▀▗▐▚▜▖▞▌▛▄▟▙█'
Zählen 20 Zeichen, nicht 52 !!-10
zur Erklärung;+20
zur Verwendung eines externen Schriftwerkzeugs oder einer externen Bibliothek.
xterm -xrm 'XTerm*renderFont:false' &
öffne ich ein Konsolenfenster, in dem dies richtig angezeigt werden kann.Antworten:
GolfScript (90 Zeichen)
Ein Großteil davon entfällt auf den Umgang mit zerlumpten Arrays. Böser Testfall:
enthält 3 verschiedene 2x2-Gitter, wobei nur eine der 4 Zellen überhaupt ein Zeichen enthält.
Um die Sache noch schlimmer zu machen, liefert die
zip
Transposition, um die Spalten in Paare zu zerlegen, die gleiche Ausgabe für["xx" "xxx"]zip
und["xxx" "xx"]zip
. Ich beginne daher mit dem Auffüllen, um sicherzustellen, dass alle Zeilen die gleiche gerade Länge haben und dass es eine gerade Anzahl von Zeilen gibt.Beachten Sie, dass dieses Programm davon ausgeht, dass der Interpreter "▗▖▄▝▐▞▟▘▚▌▙▀▜▛█" als Zeichenfolge mit der Länge 48 behandelt, obwohl ich es gemäß den Anweisungen in der Frage als 16 Zeichen zähle plus Trennzeichen.
Ich habe dies nach besten Kräften getestet, aber ich kann keine Monospace-Schriftart finden, die diese Zeichen tatsächlich korrekt wiedergibt.
quelle
zip
auf zerlumpten Arrays zu verwenden, und ich bin ziemlich überrascht, was es auf z["##" "###"]
. Ich werde meinen Ansatz überdenken müssen.Perl 6 , 159 Zeichen (192 Bytes)
Probieren Sie es online aus!
quelle
Bash (203 Zeichen)
oder
quelle
Perl (268 Zeichen)
oder
quelle