Este é o fio dos ladrões. Para o tópico dos policiais, clique aqui .
Introdução
Para esse desafio de Policiais / Ladrões, os policiais escreverão programas de produção de saída e os entrelaçarão juntos. O trabalho do ladrão é separar os programas da polícia para produzir os resultados desejados.
Regras de ladrão
Os ladrões tentarão encontrar os diferentes programas que as pessoas publicam nos envios para o tópico da polícia (link acima). Se um ladrão resolver o código de um policial, ele deve postar os programas separados e combiná-los com suas saídas em uma resposta aqui e postar que eles quebraram o código na resposta do policial.
Pontuação
Existem dois componentes que são adicionados juntos ao marcar um envio com falha.
- 2 ao poder do número de programas diferentes usados na resposta do policial
- Arredonde o número de bytes na entrelaçamento até a potência mais próxima de 2.
Por exemplo, se um ladrão racha TIliGoEnR
como sendo TIGER
e lion
, então, recebe 2 ^ 2 + 8 = 12 pontos.
O vencedor do desafio dos ladrões será a pessoa com mais pontos após um período de tempo suficiente para as pessoas participarem.
(Quem quer ajudar com um trecho?)
fonte
BitShift , 2 ^ 2 + 64 = 68 pontos
linha de policiais
impressões
! ?
impressões
? !
Código
Adicionarei algumas descrições posteriormente (divida o código nas partes que imprimem partes individuais)
fonte
2^programs + 256/bytes=points
. Nesse caso é2^2 + 256/128=6 points
. Eu acho que isso será editado, porque, como é agora, menos programas de contagem de bytes recebem um bônus maior para os ladrões. O que parece foraPHP , 68 pontos
Resultado:
Array
Resultado:
\^/\]co\[\$
Gosto dessa submissão, porque ela conta com alguns recursos menos conhecidos - pode-se dizer falhas de funcionalidade - do PHP. O PHP permite que as referências de funções sejam atribuídas a variáveis, por exemplo:
faria exatamente o que você espera. Como faria:
... exceto que não está fazendo o que você pensa.
$f = pow
não atribui uma referência de função a$f
(isso faria muito sentido, certo?), mas a string'pow'
. A implicação é que qualquer sequência pode ser usada como uma chamada de função, se representar o nome de uma função definida. Código incorreto esperando para acontecer. Eu nem sei por que você quer para permitir isso.Outra característica incorreta do PHP é que nomes de funções e palavras-chave não diferenciam maiúsculas de minúsculas. Eu queria estar brincando. Assim
echo pow(2, 4)
,ECHO POW(2, 4)
eEcHo PoW(2,4)
são todos funcionalmente equivalente.A última falha na apresentação é que, sempre que uma matriz é digitada como uma sequência, como para impressão, o resultado é sempre a sequência incrivelmente útil
Array
. Reserve um momento para refletir sobre o fato de alguém ter feito isso deliberadamente.Portanto, no primeiro programa, @insertusernamehere cria a string
stR_split
, essa string é usada como referência de função (que, pelos motivos acima, realmente funciona), e o resultado, uma matriz, é gerado.fonte
Ruby , 68 pontos
Primeiro:
Segundo:
Seguiu-se naturalmente desde o final, com
putc
.fonte
JavaScript, 68 pontos
Linha de policiais
Primeiro programa
Resultado:
ffttff
Segundo programa
Resultado:
1010
Entrelaçamento
fonte
Java, 132 pontos
Linha de policiais
Primeiro programa:
Segundo programa:
O primeiro programa sai
Hell0
e o segundo programa saiBye!
fonte
Javascript , 132 pontos
Programa 1
Programa 2
Ufa. Isso foi terrível.
Após muita depuração, descobri que, depois de chamar (partes do) segundo programa, ele não funcionava novamente. Isso ocorre porque a variável global
f
ainda foi atribuída. Porf
ter sido atribuído, a tentativa / captura não falhouObject.keys(f)
. Não sei se é um truque sorrateiro ou não intencional, mas me causou dor de cabeça.Além disso, acredito que a saída do primeiro programa é específica da plataforma.
/../g
remove todos os caracteres da minha máquina, devido à expressão regular.
que significa qualquer caractere. Escapando com as/\../g
obras, no entanto, espero que alguém possa lançar mais luz sobre isso. Além disso, minha saída é propensa a erros de arredondamento, talvez alguma variável javascript global possa mudar isso?Resultado
Isso foi testado no chrome 46 (meu único navegador), Windows 7.
Espero que ainda seja uma submissão válida, apesar da saída diferente
fonte
JavaScript (ES6) , 68 pontos
Programa 1
Programa 2
Programas entrelaçados
Isso teria sido muito mais difícil, se o policial rasgasse as palavras-chave. ;)
fonte
PHP , 24 pontos
Programa 1
Programa 2
Programa 3
Testado com http://sandbox.onlinephpfunctions.com/ .
fonte
Python 2 , 320 pontos
fonte