(basado en esta publicación y la discusión subsiguiente en el chat, también, ¡muchas gracias a Dennis por TIO!)
El reto
Elija un idioma que esté disponible actualmente en el sitio TryItOnline , por ejemplo, PowerShell . Escriba el código en ese idioma en esa página, que no tome ninguna entrada, de modo que cuando se hace clic en el botón Ejecutar , la salida en esa página es exactamente la misma que la del campo "URL simple" cuando se guarda / almacena se hace clic en el botón en su lugar.
Para un ejemplo ficticio, suponga que ese aaa
es el código para una solución a esto en PowerShell. Luego, el resultado de hacer clic en Ejecutar con aaa
el código https://tio.run/#powershell
debe aparecer https://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AA
, que también es el campo "URL simple" cuando se hace clic en el botón Guardar / Guardar .
Puntuación
La URL resultante es su envío a este desafío. El ganador es la URL más corta medida en bytes. Para el ejemplo anterior, la URL https://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AA
es el envío al desafío, a 44 bytes . La URL más corta que cumple el resto de este desafío gana el desafío y gana puntos de brownie (puntos no canjeables). Dado que hay una duración mínima mínima distinta, si dos presentaciones tienen una longitud similar, la presentación anterior gana.
Generación de URL
Este es el comienzo del algoritmo de generación de URL en el repositorio. Puede ver cómo se toma el área del código principal, se añaden los elementos adicionales, se deshincha la cadena y se convierte Base64, y luego se ##
anexa, etc. No entraré en detalles aquí; Parte del desafío es analizar y comprender cómo se generan las URL para explotar las posibles peculiaridades de dicho algoritmo.
Reglas / Aclaraciones
- El código real no debe recibir entrada y producir solo la URL de quine como salida.
- Esto significa que los únicos campos de texto que debe rellenarse cuando se hace clic en la URL son losCode
,Header
,Footer
o los correspondientes campos "Bandera de Compilador"; los camposInput
yArguments
están prohibidos y deben permanecer vacíos / sin usar. Hacer clic en el botón Ejecutar solo debería cambiar elOutput
campo. Para este desafío, elDebug
campo se ignora en todas las situaciones. - Las reglas habituales de quine se aplican al código en la medida de lo posible (por ejemplo, el código no puede leer su propio código fuente a través de
.code.tio
). - Incluya una descripción de cómo funciona el código en su envío.
- Enviar una cita "engañosa" enviando una solicitud de extracción de Git al repositorio de TIO para crear una URL o un acceso directo "truco" o algo similar no está permitido.
- Del mismo modo, no está permitido enviar una solicitud de extracción para actualizar un idioma en particular para producir una URL de "truco".
- Sea amable con los servidores de Dennis y no los maltrate ni intente explotar en aras de este desafío.
fuente
https://tio.run/##a+a
que une a un programa que salidashttps://tio.run/##a+a
, ¿es válido incluso aguantar el enlace generado porsaveState
habría sidohttps://tio.run/##a@a
Respuestas:
Python 2 , longitud de URL = 170 bytes
Pruébalo en línea!
Esto se basa en tres coincidencias:
=
carácter de relleno.+
carácter.fuente
Bash ,
174166165157 bytesEsto codifica el siguiente programa Bash.
Pruébalo en línea!
¡Gracias a @ jimmy23013 por jugar 8 bytes fuera de mi enfoque original, por un enfoque que salvó otro byte y por jugar otros 8 bytes fuera de ese enfoque!
fuente
base64 | tr -d \\n
en mi terminal ... ¡Gracias!Pyth , longitud de URL = 134 bytes
Código:
Pruébalo en línea!
Utiliza zlib builtin (
.Z
) de Pyth y una implementación en línea de base64.Cómo funciona
La etapa exterior:
La etapa interna, obtenida reemplazando espacios en blanco en la cadena
J
con comillas dobles:(Es una lástima que el campo "Entrada" no esté permitido, o tendría una solución de 118 bytes ).
fuente
PowerShell, 274 bytes
Todo es gracias al siguiente fragmento:
Pruébalo en línea!
fuente
JavaScript (Node.js) , 214 bytes
Pruébalo en línea!
fuente