Su tarea es crear un programa en el que si se elimina cualquier carácter, detectará qué carácter se eliminó y luego volverá a insertar el carácter eliminado en su propio archivo fuente.
Por ejemplo, si su programa es RadiationHardened
modificado y está modificado RadiaionHardened
, entonces su programa debe indicar que se modificó el 5to byte (indexado a 0) y luego la fuente del programa debe estar RadiationHardened
inmediatamente después de la ejecución.
Notas y reglas
- Puede suponer que se eliminó exactamente un carácter en el código fuente antes de la ejecución. El comportamiento del programa no modificado no está definido.
- Puede suponer que el byte modificado se eliminará, no se transpondrá, insertará o reemplazará.
- En el caso de una ejecución de múltiplo del mismo carácter, puede informar sobre el primer o el último índice de la ejecución, pero sea coherente con el uso que haga. Por ejemplo, si
baaad
se eliminabaad
puede informar 1 o 3 (indexado a cero), pero debe ser el mismo en todo el programa. - No necesita escribir toda la fuente en su propio archivo. Solo necesita volver a insertar el byte eliminado.
- A diferencia de las reglas típicas para quines endurecidas por radiación, detectar el byte modificado al leer el código fuente del programa es un juego justo.
- Puede generar el índice de bytes modificado a través de cualquier formato razonable. Sea coherente acerca de si está indexado 0 o indexado 1 o cualquier otra notación. Incluso puede generar un número dentro de una cadena de plantilla.
Este es el código de golf, por lo que gana el programa más corto.
¡Buena suerte!
EDITAR1: se modificó el requisito de reemplazo a eliminación
EDIT2: regla agregada para ejecuciones de duplicados
code-golf
source-layout
radiation-hardening
error-correction
Carne de res
fuente
fuente
*
comando mata todas las IP. Cardinal tampoco puede hacerlo, por eso@
.code-challenge
donde cada programa puede declarar una lista de bytes que están protegidos contra la radiación (pero no más de, digamos, el 50% del tamaño total). Un sistema de puntuación simple podría ser contar cada byte protegido contra la radiación como 10 bytes, o algo así.Respuestas:
Befunge-98 (FBBI) ,
344 296248 bytesPruébalo en línea!
¡Verificación!
Befunge-98 es el primer lenguaje esotérico que pude encontrar que era 2D y tenía salida de archivo. Esta es una solución completa (con una nueva línea final) almacenada en un archivo denominado como un carácter de tabulación. Sale como indexado a 0, y genera el primer índice en una serie de caracteres (aunque solo hay pares).
Hay algunos campos de golf para hacer,
especialmente porque hay 15 no-ops en el código, ¡ahora solo un no-op! Trabajaré para acortar esto, con el objetivo de llegar a 200 bytes o menos.fuente
Unefunge-98 (PyFunge) , 118 bytes
Pruébalo en línea!
¡Verificación!
Mientras jugaba mi respuesta Befunge-98, me di cuenta de que podía guardar algunos bytes al transferirlos a Unefunge, ya que solo tendría que preocuparme por la única dimensión en lugar de las dos. Esto también abrió muchos atajos y campos de golf posibles, lo que hizo que la nueva solución fuera mucho más pequeña.
Explicación (deduplicada):
fuente