Algum tempo depois desse incidente ...
Há alguns de nós que são contra esta ordem contaminando de jQuery. É uma presença profana, da qual deve ser exterminada . Por isso, apelo a você, leal ao Novo Reino da Reforma, para criar um programa que elimine essa resistência. Todo o código deve ser validado e procurado por QUALQUER E TODO rastreio do jQuery. E, é claro, seu envio precisa ser curto (houve outro corte no orçamento e, infelizmente, ocorreu no departamento de armazenamento). E não pode ter caracteres contaminantes.
Para chegar até a velocidade, um caráter contaminando é qualquer um dos seguintes caracteres: jJqQuUeErRyY$x0
. Como foi dito, o uso desses caracteres é estritamente proibido, mesmo em seu próprio programa. Portanto, não os use. Também estamos bem com cifrões em números. Portanto, qualquer coisa no formulário n+(.nn)*$
está OK (você ainda não deve usá-lo 0
.)
Seu programa / código / etc. deve validar um programa de entrada. Se ele contiver caracteres contaminantes , você deverá produzir This programmer is guilty of Heresy. He must be burnt.
; se nenhum desses caracteres for encontrado, você deverá produzir Program validated. Clearance level 2 given.
.
Bônus e Penalidades
- Eu pessoalmente admiro o personagem, o personagem
~
. Para cada dois que você usar, eu lhe darei -1 byte. (ou seja, todos os outros~
são gratuitos.) - Você pode escolher precisamente um caractere dos excluídos; você pode então usar esse personagem em todos os seus casos, NO ENTANTO: existe uma penalidade inicial de + 50% de bytes e, em seguida, uma penalidade de +5 bytes para cada instância desse personagem.
- -90% se você não usar nenhum dos caracteres adjacentes a
jquery
(apenas para ser super seguro) no seu código-fonte. Estes são (além disso):iIkKpPsSzZXdDfF
- -20% se, ao receber uma sequência inválida, juntamente com a saída do texto mencionado, você substitui todos os caracteres inválidos
-
por uma execução de 1,*
por uma execução menor que 10 e[]
por uma execução mais longa. - -50 bytes, se você não encontrar
JavaScript/i
ouSimplex
com caracteres contaminantes.
Implementação de referência
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>
fonte
Ee
restrição vai ser difícil ... #Those who are blind cannot see, those who are deaf cannot speak. Those who use jQuery cannot be tolerated.
Respostas:
CJam,
16013913,4 bytesO acima é um hexdump que pode ser revertido com
xxd -r -c 18
. Experimente online.O código em si consiste em 142 bytes . Ele contém um total de dezesseis caracteres ~ ( -8 bytes ), mas nenhum caractere adjacente ao jQuery ( -90% ).
Como funciona
A partida
n+(.nn)*$
realmente se resume a um dígito seguido por um cifrão .Em primeiro lugar,
adiciona -94 a todos os pontos de código dessa sequência e avalia o resultado.
O código executado é:
fonte
Minkolang 0.9 , 346-3 = 343 bytes
Programa mais longo ainda.
Experimente aqui.
Explicação
A primeira linha faz três coisas: 1) constrói a pilha com os caracteres proibidos, 2) coloca o necessário
x
no lugar certo (o espaço no final) e 3) passa pela entrada, pulando para a linha apropriada .A segunda e a quarta linhas fazem o mesmo: substitua todas as lacunas da linha seguinte pelo caractere apropriado. Eles pulam para a próxima linha no final.
A terceira e quinta linhas simplesmente pressionam a corda necessária na pilha e imprimem.
fonte
PHP, (204 * 1,5 + 5) * .1 = 31,1
Este despejo foi feito usando o gnuwin32
hexdump
. Inverta comhex2bin
.(Estou confuso sobre a ordem na qual aplicar o bônus / penalidade, então assumi a ordem conforme escrita.)
Usa o caractere "e" em avaliação. Graças à magia de inversão de string do PHP, isso evita todos os outros caracteres jquery e near-jquery.
A cadeia invertida contém este código (formatado para maior clareza)
Como esse código não possui uma instrução de retorno,
eval
retorna null, portanto<?=eval
não faz nada. (É apenas para evitar<?php
)fonte
[jquery$x0]
e[1-9]+(\.[1-9]{2})?\$
. A propósito, o capitalX
não deve ser considerado caráter de contaminação, portanto, o segundo regex deve ser alterado para'/[1-9]+(\.[1-9]{2})?\$|X/'
.> <> , 184 bytes
Isso pode ser um pouco mais curto com os imprimíveis, mas aqui está uma versão imprimível apenas por diversão. Não funcionará com o intérprete on-line, pois ele sai da caixa de códigos.
Este programa codifica ambas as strings como
que é cada ponto de código subtraído de 155. Da mesma forma,
codifica os caracteres proibidos, com pontos de código subtraídos de 160.
A última linha apenas define as coordenadas
(forbidden char, 10)
como 1, formando uma tabela de pesquisa. A quarta linha verifica cada caractere de entrada usando a tabela de pesquisa, emitindo a mensagem de heresia se mais 1 continuar. No EOF, subimos para exibir a mensagem de liberação.fonte
"Javascript" 840 * 2 + 14 * 5 = 1750;)
Estou muuuuito perto, só preciso encontrar uma maneira de me livrar dos r's
A pilha não está me deixando colar o código aqui, pois existem vários caracteres ASCII que não imprimem nas strings, então aqui está um hexdump do xxd
fonte