Herausforderung: Produziere die folgende Ausgabe mit so wenig Zeichen wie möglich:
_ _ _ _ _ _ _
| | | | ___| | | ___ __ _____ _ __| | __| | |
| |_| |/ _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` | |
| _ | __/ | | (_) | \ V V / (_) | | | | (_| |_|
|_| |_|\___|_|_|\___( ) \_/\_/ \___/|_| |_|\__,_(_)
|/
Regeln und Einschränkungen:
Sie dürfen FIGLet oder ähnliche Tools nicht verwenden . (Sonst
figlet Hello, world!
wäre das eine triviale und ziemlich unschlagbare Lösung.)Ihr Programm muss vollständig aus druckbaren ASCII- Zeichen bestehen , insbesondere den Codepunkten 9 (TAB), 10 (LF) und 32 - 126. (Wenn Ihre Sprache / Ihr Betriebssystem CRLF-Zeilenumbrüche erfordert, können Sie diese anstelle von einfachen LFs verwenden.) Ja Dies disqualifiziert bedauerlicherweise jede Sprache, die Nicht-ASCII-Zeichen (oder Nicht-Textdaten) als Teil ihrer Syntax benötigt.
Die Ausgabe muss genau wie im obigen Beispiel aussehen. Sie können jedoch zusätzliche Leerzeichen um die Ausgabe einfügen, wenn Sie möchten. Sie können einen Tabulatorabstand von 8 Zeichen annehmen (oder die native Standardeinstellung Ihrer gewählten Plattform, falls eine konsistente vorhanden ist).
Ps. Um den Wert zu bestimmen, habe ich mir eine Perl-Lösung mit 199 Zeichen ausgedacht. Ich werde es jedoch noch nicht veröffentlichen, falls jemand es selbstständig erstellt. (Außerdem ist es ein bisschen kitschig.) Dies sollte Sie natürlich nicht davon abhalten, Ihre eigene Lösung zu veröffentlichen, auch wenn sie länger ist.
Update: Jetzt, wo Han es mit einem Char geschlagen hat, ist hier meine kitschige 199-Char-Perl-Lösung:
use Compress'Zlib;say uncompress unpack u,'M>-I]BT$*`S$,`^]YQ=R:0,&_Z<DP?8@?WVQJ]E2J"%E$$@)R(/(/MCJ*\U!OM`Z#=5`4Y>6M=L\L%DMP&DB0V.4GQL&OOGB$4:%`4TT4!R8O-Z(^BTZWNV?>F86K:9+""-35*-LNC:T^D:_$#%^`";"DD0'
Es ist der DC-Lösung (und allen anderen ZLIB / GZIP-basierten Lösungen in verschiedenen Sprachen) sehr ähnlich , mit der Ausnahme, dass ich für den komprimierten Text und einige andere kleine Golftricks Uuencoding anstelle von base64 verwendet habe .
Update 2 : Ich denke, es ist Zeit, einen Gewinner offiziell zu akzeptieren. Der erste Platz geht an den PHP-Code von konsolenfreddy , da er zwar die Zeichen zählt, aber der kürzeste ist, der bisher eingereicht wurde. In der Tat ergibt die Kombination mit dem optimierten DEFLATE-Stream aus meinem Perl-Code mit 199 Zeichen eine noch kürzere Lösung mit 176 Zeichen:
<?=gzinflate(base64_decode("fYtBCgMxDAPvecXcmkDBv+nJMH2IH99savZUqghZRBICciDyD7Y6ivNQbwOg3VQFOXlrXbPLBZLcBpIkNjlJ8bBr754hFGhQFNNFAcmLzeiPotOt7tn3plq2mSwgjU1SjbLo2tPpGvxAxfgA"));
Ich denke jedoch, dass Han eine besondere Auszeichnung verdient, weil er so nah dran ist, ohne zuvor geschriebene Dekomprimierungswerkzeuge zu verwenden. Wir gratulieren Ihnen beiden und wünschen allen ein frohes neues Jahr!