Este é o tópico dos policiais. A discussão dos ladrões está aqui .
Seu desafio é escrever um programa ou função que, com uma determinada entrada, imprima a seqüência exata Hello, World!
e uma nova linha. Letras maiúsculas, espaçamento e pontuação devem ser exatas.
A entrada pode ser obtida via entrada padrão, um arquivo ou argumentos de linha de comando / função. A saída pode ser fornecida via valor de retorno, gravação em um arquivo ou saída padrão.
Seu programa deve imprimir Hello, World!
para pelo menos uma entrada. Quando o programa recebe a entrada errada (ou seja, a entrada que não a imprime)Hello, World!
), ele pode fazer o que quiser - travar, imprimir bobagens aleatórias, ligar para Chuck Norris etc.
Você não pode usar um algoritmo de hash ou métodos semelhantes para ocultar a entrada necessária.
É preferível que os envios sejam executáveis e decifráveis no TIO . Os envios não executáveis ou quebráveis no TIO são permitidos, mas inclua instruções para fazer o download / executá-los.
Após uma semana, esse desafio será encerrado para envios futuros de policiais. O vencedor é o código mais curto que é decifrado após uma semana de publicação ("ele" é o código, não esse desafio). O vencedor será aceito após duas semanas.
Depois de uma semana desde a publicação, marque sua resposta como segura e mostre a entrada (em a > ! spoiler quote
). Se um ladrão quebrar seu envio (antes do final da semana), marque-o como quebrado e mostre a entrada interrompida (em a > ! spoiler quote
).
Procurando envios sem rachaduras?
fetch("https://api.stackexchange.com/2.2/questions/137742/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>
sha3
enquadra nessa categoria, mas de outra forma, onde você desenha a linha? Quero dizer,mod 1e3
também é uma função de hash, e eu até chegaria longe e argumentaria que muitos dos envios serão funções de hash, pois esse desafio é basicamente pedir isso.Respostas:
Python 3,
191186 bytes (SEGURO!)Igual à minha resposta anterior, mas sem a declaração noob eval, para que alguém realmente precise resolver o problema que criei.
Agora execute-o com os parâmetros corretos, como
python3 hw.py 1 2 3
Edit : versão anterior estava faltando uma vírgula em "Olá, mundo!", E também percebi que tinha uma enumeração desnecessária, que agora se foi.
Edit 2 : Apenas por diversão, aqui está uma versão Pyth quase idêntica (47 bytes) do mesmo código:
A entrada é obtida
stdin
e está na forma de uma lista de argumentos, como[1,2,3]
Não vejo sentido em postar uma resposta separada, porque se você quebrar a versão do Pthyon3, também quebrará a versão do Pyth, mesmo sem conhecer o Pyth.
Responda:
Explicação do código:
Chegando à solução, em python:
fonte
literal_eval()
oast
módulo pode ser usado para avaliar expressões com segurança, para que oprint(
problema de injeção de código não funcione. Provavelmente não é relevante aqui, mas pensei em mencionar.Hello, World!
? Não têm rachado ainda, mas parece que ele está faltando uma vírgula (apenas 12 iterações em juntar-se circular)TeX - 38 bytes Cracked (ish)
Vale a pena tentar, porque não consigo imaginar alguém em um site que escrevesse pequenos pedaços de código saberia o TeX:
Para executá-lo, você deve adquirir algum tipo de TeX que permita o modo interativo. Salve isso em um arquivo e execute o TeX (ou pdfTeX, XeTeX, etc.) nele.
Edit: Atualmente, estou considerando isso semi-rachado. A solução pretendida usa a entrada do stdin, mas a entrada TeXnically da maneira como o programa é chamado é válida. Adicionarei respostas TeX mais desonestas se alguém obtiver o método pretendido.
Aqui está a solução pretendida:
Isso pode ser discreto, mas ainda deve estar dentro das regras do jogo.
fonte
tex \ Hello, world!\bye
(23 bytes)?texnically
Oh, Deus.> <> , 538 bytes, Rachado por rexroni
Experimente on-line ou use o parque infantil .
As três primeiras linhas lêem uma string do STDIN e usam seus códigos de modificação mod 26 como coordenadas para colocar os caracteres "
>/v>v\v</>
" no labirinto abaixo. A solução pretendida é uma cadeia de 20 caracteres composta apenas pelas letras A – Z (embora você possa usar o que quiser, é claro).Solução:
fonte
Oitava, 59 bytes, Rachado
Isso funciona no Octave 4.2.0. Não posso garantir a compatibilidade com todas as versões.
Nota: Isso não imprime espaços à direita ou novas linhas. Isto é o que parece:
Ele basicamente diz: "Imprima a string de entrada, a menos que seja 'Hello, World!'; Nesse caso, ela não deve imprimir nada (ou o caractere nulo).
fonte
%c
significa string ou char ... talvez você esteja escondendo alguma coisa? Também*~
me deixa um pouco desconfiado ...\n
. Achei que o texto da pergunta dizia " nova linha opcional à direita ".CJam , 7 bytes ( quebrado )
Experimente online!
Entrada pretendida:
fonte
MATL , 6 bytes. Rachado
Experimente online!
fonte
['Hello,' 1 'World!']
. Por que fazer batota? :-( O doc / ajuda paraD
diz maioria dos caracteres de entrada abaixo de 32 são substituídos por um espaçoExplodir , 23 bytes, Rachado
Mais chegando, este é apenas o começo> :)
Experimente online!
Explicação do Explorer
Existem quatro exploradores neste programa. Não tenho certeza de que wait (
>
) esteja funcionando corretamente.Leia a entrada do usuário (
?
), escreva e estenda a fita (@
) para baixo (_
).Para 4 carrapatos (
4
), modifique a fita (&
) para baixo (_
), saltando 5 (5
), subtraindo (-
) 19 (j
).Para 16 ticks (
f
), modifique a fita (&
) para cima (^
) em uma onda (~
), alternando sem efeito, +13, sem efeito e -13 (c
).Para 6 ticks (
6
), modifique a fita (&
) nas duas direções (|
), diminuindo (\
) em 4 (4
) a cada vez e pulando em 7 (7
). Diminuir significa que subtrai 4 na primeira vez, 8 na segunda vez, etc.fonte
JavaScript (ES6),
173169163150151148143 bytes ( Rachado )Vamos ter algo totalmente diferente ... e totalmente mau .
Uso:
f(something) // returns 'Hello, World!'
Experimente online!
fonte
C # (.NET Core) ,
130152 bytes, CRACKED22 bytes, esqueci-me de seguir a nova linha ... O programa funciona da mesma maneira que antes, a nova linha é adicionada a qualquer saída.
Experimente online!
A contagem de bytes também inclui
Para começar, fui atrás de algo não muito louco. Pode ter várias respostas.
O crack "oficial":
fonte
tcc, 89 bytes, quebrado por Dennis
Isso é particularmente ruim devido à resolução dinâmica do tcc. Muitas funções são pré-declaradas e tentar substituí-las simplesmente não funciona.
fonte
puts
e achei que saídas).mprotect
está sendo um alvo.Bash , 62 bytes, ( quebrado por ArchDelacy )
Sem alfanuméricos ou barras. Você deve se divertir com este.
Experimente online!
fonte
brainfuck , 7 bytes quebrado
Experimente online!
Boa sorte. (não funciona com todos os intérpretes de BF
fonte
JavaScript (ES6), 102 bytes ( Quebrado )
A versão anterior tem um queijo enorme. Vamos tentar de novo ...
Experimente online!
Solução do autor:
Uso:
fonte
Cubicamente , 159 bytes ( rachado )
Isso será bem fácil para quem se sente à vontade com o Cubically. Experimente online!
fonte
Código da máquina 6502 (C64),
5153 bytes ( rachado )Demonstração online
Uso :
SYS49152,[x],[n]
, ondex
é um inteiro sem sinal de 16 bits en
é um número inteiro de 8 bits sem sinal.Chamado com valores errados, é muito provável que haja uma falha .
Para crack, você pode executá-lo em uma instalação local do vice , então aqui está um carregador BASIC para colar no emulador (
RUN
para colocar o programa$C000
):Atualização: foram adicionados dois bytes para o endereço de carregamento para torná-lo um
PRG
arquivo C64 executável em resposta à discussão sobre metafonte
b7eb
chamadasaefd
, mas somente após a chamadaad8a
(analisar o número como float (!) (wtf) (MS)) eb7f7
(converter esse float em 16bit int não assinado) - então eu devo primeiroaefd
me chamar por consumir a primeira vírgula.Python 2 , 63 bytes, quebrado
Só para fazer a bola rolar ...
Experimente online!
fonte
Pitão , 18 bytes ( Rachado )
Isso é extremamente fácil, e qualquer um que conheça Pyth o abriria em um piscar de olhos, mas ainda assim ... Observe que você deve colocar a String entre aspas.
Experimente online!
fonte
JavaScript (somente navegador), 95 bytes ( rachado )
Não muito difícil. Tem várias soluções.
fonte
Gelatina , 11 bytes ( rachado )
Experimente online!
Entrada pretendida:
fonte
05AB1E , 20 bytes ( Cracked )
Porém, não deve ser muito difícil:
Usa a codificação 05AB1E . Experimente online!
fonte
Ly , 12 bytes ( rachado )
Experimente online!
Não espero que isso dure muito tempo, mas tudo bem.Não durou muito tempo.fonte
Python3, 192 bytes Rachado, eu acho
O texto que lê é o primeiro argumento do programa:
python3 hw.py '[1,2,3]'
Não seja coxo e tente colocar uma
print("Hello World!")
declaração como argumento ... ele imprime um erro depois de qualquer maneira (pelo menos na linha de comando), então não acho que isso deva contar. (Edit: alguém fez exatamente isso)fonte
Geléia ,
2021 bytes ( rachado )+1 byte - "... e uma nova linha à direita"
Experimente online!
De fato, existem infinitas soluções.
fonte
⁸
que, por algum motivo, está ausente no link TIO, então espero não ter me confundido.Lua 5.1, 44 bytes ( rachado )
Observe que Lua 5.1 é um idioma diferente do Lua 5.2 ou Lua 5.3. "Experimente online" não possui Lua 5.1. Você pode verificar sua versão do Lua executando
print(_VERSION)
. (Deve haver uma solução em qualquer implementação que use o núcleo Lua 5.1 da PUC-Rio.)Como equipamento de teste, você pode usar algo como isto:
Arnês de teste em repl.it
fonte
C (GCC no TIO), 84 bytes jogados ( rachado )
Aqui está uma versão não destruída que também funciona:
fonte
JavaScript (ES6), 92 bytes ( Quebrado )
Esta função simples de cópia de string parece estar realmente resistindo a copiar quaisquer strings semelhantes
Hello, World!
...Experimente online!
fonte
Röda , 71 bytes ( Rachado )
Experimente online!
Uso:
push(/* input */) | f()
(onde f é uma variável que mantém a função acima).fonte
JavaScript (ES6),
135119 bytes, ( Rachado )Experimente online!
fonte
Ruby , 88 bytes, Rachado por w0lf
Experimente online!
fonte
JavaScript (ES6) 107 bytes [Obrigado Евгений Новиков] ( Rachado )
Ligue para o
i
função usando uma string.O
console.log...
é para fins de teste.Experimente Online!
fonte
var
, (2)()
de um argumento de função de seta, (3) substituareturn
poreval("")
(4) exclua;
no final. Solução de 110 bytes: pastebin.com/qwdm7fT7 Good luck