Tenemos el desafío de generar su propia puntuación , pero parece que todas las respuestas allí solo codifican la salida y eso es aburrido 1 . Así que tengamos un nuevo desafío. Su programa debe generar su propia longitud en bytes seguidos de la cadena " bytes"
, pero para evitar soluciones codificadas si reducimos su tamaño eliminando cualquier byte, el nuevo programa también debe generar su nuevo recuento de bytes, aún seguido de " bytes"
. La salida no necesita ser sensible a mayúsculas y minúsculas. También puede optar por generar una nueva línea final.
Sus respuestas se puntuarán en bytes, siendo menos bytes mejores.
1: De hecho, me gustan algunas de las respuestas allí.
code-golf
radiation-hardening
self-referential
Post Rock Garf Hunter
fuente
fuente
:(
1 bytes
es una gramática técnicamente incorrecta, pero suponiendo que los idiomas no tengan una función integrada para generar la cadena" bytes "en <= 2 bytes, el programa tendrá más de 3 bytes, por lo que no importa "- no importa de todos modos.Respuestas:
Revés ,
40 3629 bytesPruébalo en línea! ¡Verificación!
En caso de duda, duplique en todo. Esto utiliza la capacidad de Backhand para moverse más de un paso a la vez para implementar la redundancia. Todos los no imprimibles tienen el valor de byte 28.
Explicación:
Programa no irradiado:
Programa irradiado:
Si se elimina algún carácter, todos los caracteres posteriores se desplazan hacia abajo.
Sin embargo, en lugar de saltar al
]
, se refleja en el final del programa y aterriza en elO
.fuente
Encantamientos rúnicos , 47 bytes
Pruébalo en línea!
Que es más o menos un puerto de mi respuesta Geiger Counter , pero con una salida diferente (que es, en sí mismo, un puerto de una respuesta de Klein).
>>yyLL
es necesario para que Runic genere (al menos) una IP, combine dos IPS y se refleje hacia la izquierda, de modo que todas las variaciones den como resultado una sola IP que se mueva hacia la izquierda. Podría ser reemplazado poryy<<
pero no guarda ningún byte.Los reflectores de la derecha fuerzan la IP a la cadena inferior izquierda, por lo que la eliminación de uno de ellos superior derecho permite que la IP entre en la cadena superior derecha. Al eliminar un byte en cualquier otro lugar a lo largo de la línea superior, se ajusta el reflector superior para que se asiente sobre la L (permitiendo que el programa entre en la esquina inferior derecha). La eliminación de un byte a lo largo de la parte inferior ajusta ese reflector (o lo elimina) para que el último carácter se llene implícitamente con un espacio, lo que permite que la IP rebote en ambos lados del reflector superior derecho y en la cadena superior derecha.
Sin embargo, los espacios en exceso son decepcionantes. Pero todos los intentos de reducirlos han dado como resultado programas más grandes, programas del mismo tamaño o programas que no son 100% a prueba de radiación. Tanto las respuestas Klein como> <> aquí usan características no disponibles en Runic.
fuente
> <> ,
4339 bytesPruébalo en línea! ¡Verificación!
En el programa no irradiado, agregamos
0
a'
(39), y en el programa irradiado omitimos el 0 y lo agregamos-1
. Si algo se elimina de la fila superior, cambiamos a la fila inferior en su lugar y solo imprimimos38 bytes
.fuente
Hexagonía , 71 bytes.
Pruébalo en línea! ¡Verificación!
Pasé demasiado tiempo tratando de conseguir esto en un hexágono de tamaño 5, pero tuve que conformarme con un tamaño inferior a 6
:(
.Expandido:
Inicialmente hice esto con la
)
fila inferior, pero resulta que es exactamente donde está la división entre los hexágonos de tamaño 5 y 6. Esto significa que cuando se elimina un byte, el tamaño se desplaza hacia abajo y arruina los caminos. Definitivamente estoy seguro de que es posible una talla 5.fuente
)
una fila más abajo y luego poner un no-op después de eso para que sea un hexágono de tamaño 6?Klein 000, 41 bytes
Pruébalo en línea! Verificador de JoKing
Creo que esta respuesta es similar a la respuesta> <> de JoKing , pero no leo> <>, así que no puedo estar seguro.
Hay 4 tipos diferentes de eliminación de bytes aquí
Un byte se elimina de la primera línea anterior
/
. En este caso, la barra se mueve efectivamente hacia la izquierda un espacio, desviándola hacia la línea inferior y evitando que se ejecute la parte modificada del código. Esto nos hace ejecutar el código("40 bytes"@
, que genera40 bytes
.El primero
/
se elimina de la primera línea. En este caso ejecutamos el código"0"+"4"$" bytes"@
, que es una forma complicada o de impresión40 bytes
.La nueva línea se elimina. Esto nos hace comenzar desde el final de la segunda línea y el código resultante (con noops eliminados) es
1("40 bytes"@
, que solo imprime40 bytes
.Se elimina un byte de la última línea. Esto hace que
1
al final de la primera línea se mueva hacia la izquierda y evita que se agregue a la pila cuando el punto se desvía/
. El código"0"+
por eso empuja0
en lugar de1
, el resto del código convierte el0
en40 bytes
.Klein 001, 41 bytes
Pruébalo en línea! Verificador de JoKing
Aquí hay una respuesta usando una topología diferente. Es del mismo tamaño pero creo que hay margen de mejora.
fuente