Algún tiempo después de este incidente ...
Hay algunos de nosotros que están en contra de esta orden profanar jQuery. Es una presencia impía, de la cual debe ser exterminada . Por lo tanto, le pido a usted, fiel al Nuevo Reino de la Reforma, que cree un programa que elimine dicha resistencia. Todo el código debe ser validado y buscado CUALQUIER rastro de jQuery. Y, por supuesto, su envío debe ser breve (ha habido otro recorte presupuestario y, desafortunadamente, fue en el departamento de almacenamiento). Y no puede tener personajes profanos.
Para llegar hasta velocidad, un personaje profanar es cualquiera de los siguientes caracteres: jJqQuUeErRyY$x0
. Como se ha dicho, el uso de estos caracteres está estrictamente prohibido, incluso en su propio programa. Así que no los uses. TAMBIÉN estamos de acuerdo con los signos de dólar en números. Por lo tanto, cualquier cosa del formulario n+(.nn)*$
está bien (aún no debe usar 0
).
Su programa / código / etc. debe validar un programa de entrada. Si contiene caracteres de impureza , debe generar This programmer is guilty of Heresy. He must be burnt.
; Si no se encuentran dichos caracteres, debe generarlos Program validated. Clearance level 2 given.
.
Bonificaciones y penalizaciones
- Personalmente admiro al personaje, el personaje
~
. Por cada dos que uses, te daré -1 byte. (es decir, todos los demás~
son gratuitos) - Puedes elegir precisamente un personaje de los excluidos; entonces puedes usar este personaje en todos sus casos, SIN EMBARGO: hay una penalización inicial de + 50% byte, y luego una penalización de +5 byte por cada instancia de ese personaje.
- -90% si no utiliza ninguno de los caracteres adyacentes
jquery
(solo para estar súper seguro) en su código fuente. Estos son (además):iIkKpPsSzZXdDfF
- -20% si, cuando se le da una cadena no válida, junto con la salida del texto mencionado anteriormente, reemplaza todos los caracteres no válidos con
-
una ejecución de 1,*
con una ejecución de menos de 10 y[]
con una ejecución más larga. - -50 bytes si no encuentra
JavaScript/i
oSimplex
tiene caracteres profanos.
Implementación de referencia
function validate() {
var str = document.getElementById("input").value;
var str2 = str.replace(/[jquery0]/gi,"").replace(/x/g,"").replace(/(\d+\.*\d*\d*\$)|\$/g,"$1"); // thanks Doorknob!
var val;
if (str2 == str) {
val = "Program validated. Clearance level 2 given.";
} else {
val = "This programmer is guilty of Heresy. He must be burnt.";
}
document.getElementById("output").value = val;
}
textarea{width: 600px;}
<textarea id="input" onkeyup="validate()"></textarea>
<br><br>
<textarea id="output" disabled></textarea>
fuente
Ee
restricción será dura ...Those who are blind cannot see, those who are deaf cannot speak. Those who use jQuery cannot be tolerated.
Respuestas:
CJAM,
16013913.4 bytesLo anterior es un hexdump que se puede revertir con
xxd -r -c 18
. Pruébalo en línea.El código en sí consta de 142 bytes . Contiene un total de dieciséis ~ caracteres ( -8 bytes ), pero no contiene caracteres jQuery adyacentes ( -90% ).
Cómo funciona
La coincidencia
n+(.nn)*$
realmente se reduce a un dígito seguido de un signo de dólar .Ante todo,
agrega -94 a todos los puntos de código de esa cadena y evalúa el resultado.
El código ejecutado es:
fuente
Minkolang 0.9 , 346-3 = 343 bytes
El programa más largo hasta ahora.
Pruébalo aquí
Explicación
La primera línea hace tres cosas: 1) construir la pila con los caracteres prohibidos, 2) colocar un elemento muy necesario
x
en el lugar correcto (el espacio al final) y 3) recorrer la entrada, saltar a la línea apropiada .Las líneas segunda y cuarta hacen lo mismo: reemplazar cada espacio en la línea siguiente con el carácter apropiado. Saltan a la siguiente línea al final.
Las líneas tercera y quinta simplemente empujan la cadena requerida en la pila e imprimen.
fuente
PHP, (204 * 1.5 + 5) * .1 = 31.1
Este volcado se realizó con gnuwin32
hexdump
. Invertir conhex2bin
.(Estoy confundido sobre el orden en el que se aplica la bonificación / penalización, así que asumí el orden como está escrito).
Utiliza el carácter "e" en eval. Gracias a la magia de inversión de cadenas PHP, esto logra evitar todos los otros caracteres jquery y near-jquery.
La cadena invertida contiene este código (formateado para mayor claridad)
Como este código no tiene una declaración return,
eval
devuelve nulo, por lo<?=eval
que no hace nada. (Es solo para evitar<?php
)fuente
[jquery$x0]
y[1-9]+(\.[1-9]{2})?\$
. Por cierto, el capitalX
no debe considerarse como un personaje contaminante, por lo que la segunda expresión regular debe cambiarse a'/[1-9]+(\.[1-9]{2})?\$|X/'
.> <> , 184 bytes
Esto puede ser un poco más corto con no imprimibles, pero aquí hay una versión imprimible solo por diversión. No funcionará con el intérprete en línea, ya que lo coloca fuera del cuadro de código.
Este programa codifica ambas cadenas como
que es cada punto de código restado de 155. Del mismo modo,
codifica los caracteres prohibidos, con puntos de código restados de 160.
La última línea simplemente establece las coordenadas
(forbidden char, 10)
en 1, formando una tabla de búsqueda. Luego, la cuarta línea verifica cada carácter de entrada utilizando la tabla de búsqueda, enviando el mensaje de herejía si 1 más continúa. En EOF, nos movemos hacia arriba para enviar el mensaje de autorización.fuente
"Javascript" 840 * 2 + 14 * 5 = 1750;)
Estoy muuuy cerca, solo necesito encontrar una manera de deshacerme de los r
Stack no me deja pegar el código aquí ya que hay varios caracteres ASCII que no se imprimen en las cadenas, así que aquí hay un hexdump de xxd
fuente