(¡Esta es una variación de Imprimir un negativo de su código , que disfruté mucho! Gracias a Martin Büttner ♦ , casi todo este texto es suyo).
Consideremos que los símbolos son los siguientes caracteres ASCII imprimibles (tenga en cuenta que se incluye espacio):
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Y los alfanuméricos para ser estos:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Considere un cuadrado de caracteres ASCII imprimibles para la longitud del lado N, como el siguiente:
ONE,
{two}
&3,+=
!four
f|ve.
También requerimos que cada fila y cada columna contengan al menos un símbolo y un alfanumérico. (El ejemplo anterior satisface esto).
Definimos el negativo simbólico de dicho cuadrado como un cuadrado del mismo tamaño donde cada símbolo se reemplaza por un alfanumérico y viceversa. Por ejemplo, lo siguiente sería un negativo simbólico válido del ejemplo anterior:
[&]OK
a...b
1/100
i@#$%
(R) z
La elección de caracteres específicos es irrelevante siempre que estén en las categorías anteriores.
El reto
Su tarea es escribir un programa con código fuente cuadrado con longitud lateral N> 1, que imprima un negativo simbólico de su código fuente en STDOUT. Los espacios finales deben imprimirse. Puede o no imprimir una sola línea final.
Las reglas habituales de quine también se aplican, por lo que no debe leer su propio código fuente, directa o indirectamente. Del mismo modo, no debe asumir un entorno REPL que imprima automáticamente el valor de cada expresión ingresada.
El ganador es el programa con la longitud lateral más baja N. En caso de empate, gana la presentación con la menor cantidad de símbolos en el código fuente. Si todavía hay un empate, la primera respuesta gana.