Sfida: produrre il seguente output usando il minor numero possibile di caratteri:
_ _ _ _ _ _ _
| | | | ___| | | ___ __ _____ _ __| | __| | |
| |_| |/ _ \ | |/ _ \ \ \ /\ / / _ \| '__| |/ _` | |
| _ | __/ | | (_) | \ V V / (_) | | | | (_| |_|
|_| |_|\___|_|_|\___( ) \_/\_/ \___/|_| |_|\__,_(_)
|/
Regole e restrizioni:
Non puoi usare FIGLet o altri strumenti simili. (Altrimenti,
figlet Hello, world!
sarebbe una soluzione banale e praticamente imbattibile.)Il tuo programma deve essere interamente composto da caratteri ASCII stampabili , in particolare punti di codice 9 (TAB), 10 (LF) e 32 - 126. (Se la tua lingua / sistema operativo richiede interruzioni di riga CRLF, puoi usare quelli al posto di semplici LF.) Sì , ciò purtroppo squalifica qualsiasi linguaggio che richiede caratteri non ASCII (o dati non testuali) come parte della sua sintassi.
L'output deve essere esattamente come nell'esempio sopra. Tuttavia, è possibile includere spazi bianchi extra nell'output, se lo si desidera. Puoi assumere una spaziatura di tab di 8 caratteri (o l'impostazione predefinita nativa della tua piattaforma scelta, se ne ha una coerente).
Ps. Per impostare la parità, ho trovato una soluzione Perl a 199 caratteri. Non lo pubblicherò ancora, comunque, nel caso qualcuno ne venga fuori in modo indipendente. (Inoltre, è un po 'di formaggio.) Naturalmente, questo non dovrebbe scoraggiarti dal pubblicare la tua soluzione, anche se è più lunga.
Aggiornamento: Ora che Han lo ha battuto di un carattere, ecco la mia soluzione Perl di 199 caratteri:
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'
È molto simile alla soluzione di DC (e a tutte le altre soluzioni basate su zlib / gzip in varie lingue), tranne per il fatto che ho usato uuencoding invece di base64 per il testo compresso e qualche altro piccolo trucco da golf.
Aggiornamento 2 : Penso che sia il momento di accettare ufficialmente un vincitore. Il primo posto va al codice PHP di konsolenfreddy , dal momento che, nonostante contiate i caratteri, è il più breve presentato finora. Infatti, combinandolo con il flusso DEFLATE ottimizzato dal mio codice Perl a 199 caratteri si ottiene una soluzione a 176 caratteri ancora più breve:
<?=gzinflate(base64_decode("fYtBCgMxDAPvecXcmkDBv+nJMH2IH99savZUqghZRBICciDyD7Y6ivNQbwOg3VQFOXlrXbPLBZLcBpIkNjlJ8bBr754hFGhQFNNFAcmLzeiPotOt7tn3plq2mSwgjU1SjbLo2tPpGvxAxfgA"));
Tuttavia, penso che Han meriti una menzione speciale onoraria per essersi avvicinato così tanto senza usare strumenti di decompressione pre-scritti. Congratulazioni a tutti e due e un felice anno nuovo a tutti!