Objetivo:
Un gurú dijo una vez que un selfie de código perfecto se toma mejor en diagonal desde la esquina superior izquierda. Un código selfie es casi como un Quine, pero gira 45 grados en el sentido de las agujas del reloj. Tu misión es codificar un programa que genere un código selfie.
Reglas:
- Puedes usar cualquier lenguaje de programación.
- Sus programas no deben tomar ninguna entrada del archivo, nombre de archivo, red o cualquier otra cosa.
Criterios obligatorios:
Selfies trata sobre el motivo y el fondo, por lo que los espacios en blanco (y otro contenido no visible como saltos de línea y demás) no cuentan como parte del recuento de caracteres. Se restringe la salida de todos los caracteres visibles en la posición rotada correcta de 45 grados, mientras que todos los caracteres no visibles no están restringidos a la posición rotada correcta de 45 grados. Al igual que una paleta de colores en una selfie normal, lo obligatorio para una selfie de código es que contiene al menos 16 de estos caracteres: {a-zA-Z0-9}
Ejemplo:
Si este ejemplo es un código fuente válido:
Output abcd
Output efgh
Output ijkl
Output mnop
El código de ejemplo debería mostrar esto:
O
O u
O u t
O u t p
u t p u
t p u t
p u t
u t a
t e b
i f c
m j g d
n k h
o l
p
Este es el código de golf, ¡el código fuente más corto en bytes gana!
Respuestas:
Javascript ( ES6 ), 72 bytes
16 paletas de caracteres alfanuméricos únicos:
fjalert0plcgmixn
m
y lasi
banderas se agregan a la expresión regular para cumplir con los requisitos mínimos de paleta.fuente
CJam,
30 2825 bytesEsto es bastante largo debido a los 16 caracteres del
A-Za-z0-9
límite.Esta es una variante poco trivial de una quine estándar en CJam. Agregará explicaciones pronto.
ACTUALIZACIÓN: 2 bytes guardados gracias a Martin, 3 bytes guardados gracias a Dennis
Pruébalo en línea aquí
fuente
Java, 312
En realidad, hay 326 bytes, pero si entiendo las reglas correctamente, no tengo que contar los 14 espacios.
El programa es básicamente una quine estándar de Java, además de muchos espacios en blanco.
fuente
Python 3, 139 caracteres - 10 espacios = 129 caracteres
Como mi código era una línea, todo lo que tenía que hacer era imprimir el programa en diagonal. Mi cadena tiene el nombre extraño 'sjxd' para que mi código pueda tener los 16 caracteres alfanuméricos únicos.
fuente
CSS, 69 bytes
Poner en una página html en blanco para evitar conflictos con otras etiquetas.
Paleta:
stylebfortanm45dgiplck
(22 caracteres)fuente
MATLAB, 40 bytes
Un poco difícil con todo lo relacionado con la recursividad: ¿cómo imprime su propio código fuente cuando agrega el código a una cadena para imprimir? Aumenta el tamaño del código fuente en sí. Pero, sin embargo, lo siguiente lo hará:
los
123456;
bit está ahí para cumplir con los 16 caracteres únicos requeridos. Se utilizan los siguientes:El código anterior no funciona en Octave por alguna razón, pero funciona en MATLAB. A continuación se muestra la salida:
Ahora, si no le importa el
ans=
bit que le gusta poner a MATLAB, lo siguiente funcionaría para 32 bytes :fuente