(Questa è una variante di Print a Negative del tuo codice , che mi è piaciuta molto! Grazie a Martin Büttner ♦ - quasi tutto questo testo è suo.)
Consideriamo i simboli come i seguenti caratteri ASCII stampabili (si noti che lo spazio è incluso):
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
E gli alfanumerici sono questi:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Considera un quadrato di caratteri ASCII stampabili per la lunghezza del lato N, come il seguente:
ONE,
{two}
&3,+=
!four
f|ve.
Richiediamo inoltre che ogni riga e ogni colonna contengano almeno un simbolo e un alfanumerico. (L'esempio sopra soddisfa questo.)
Definiamo il negativo simbolico di un tale quadrato come un quadrato della stessa dimensione in cui ogni simbolo è sostituito da un alfanumerico e viceversa. Ad esempio, quanto segue sarebbe un negativo simbolico valido dell'esempio precedente:
[&]OK
a...b
1/100
i@#$%
(R) z
La scelta di caratteri specifici è irrilevante purché rientrino nelle categorie sopra.
La sfida
Il tuo compito è scrivere un programma con codice sorgente quadrato con lunghezza lato N> 1, che stampa un negativo simbolico del suo codice sorgente su STDOUT. Gli spazi finali devono essere stampati. È possibile o meno stampare una nuova riga finale.
Si applicano anche le solite regole quine, quindi non è necessario leggere il proprio codice sorgente, direttamente o indirettamente. Allo stesso modo, non si deve assumere un ambiente REPL che stampa automaticamente il valore di ogni espressione immessa.
Il vincitore è il programma con la lunghezza del lato più basso N. In caso di pareggio, vince l'invio con il minor numero di simboli nel codice sorgente. Se c'è ancora un pareggio, vince la prima risposta.