Inspirado por este comentário ...
Obrigado aos usuários Step Hen , Wheat-Wizard e Dennis por ajudarem a solidificar a especificação deste desafio antes de publicá-lo!
Este é o tópico do ladrão! Para o tópico dos policiais, clique aqui
Nesse desafio , você tem a tarefa de executar um código que o torna para que sua linguagem não atenda mais aos nossos critérios de ser uma linguagem de programação. Nesse desafio, isso significa fazer com que o idioma não possa mais ...
Obter entrada e saída numéricas
Adicione dois números juntos
Teste se um determinado número é primo ou não.
Esse é um desafio de policiais e ladrões , onde há dois desafios diferentes com dois objetivos diferentes: os policiais tentam escrever um código que torne a linguagem praticamente inutilizável, e os ladrões tentam encontrar a solução oculta que permite que os policiais recuperar o idioma deles.
Os policiais escreverão dois trechos de código:
Um que torna seu idioma praticamente inutilizável, por exemplo, removendo funções incorporadas para realizar operações numéricas e de entrada / saída. Este código não tem permissão para travar ou sair. Deve ser possível adicionar código ao final deste trecho, e esse código será avaliado . E
Um trecho de código que recebe dois números como entrada, os adiciona e gera sua soma. Esse trecho ainda deve funcionar corretamente mesmo após a execução do primeiro trecho. Quando os dois trechos são combinados, eles devem formar um programa completo que adicione dois números ou definir uma função que adicione dois números. Esse snippet provavelmente dependerá de um comportamento obscuro e será difícil de encontrar.
Os policiais também escolherão qualquer método padrão de entrada e saída . No entanto, eles devem revelar exatamente qual formato (entrada e saída) eles estão usando. Para que você decida a resposta deles, siga o mesmo formato de entrada / saída, ou o seu crack não conta.
A resposta da polícia sempre revelará
O primeiro trecho (obviamente não o segundo).
Idioma (incluindo versão secundária, já que a maioria dos envios provavelmente dependerá de casos extremos)
Formato IO, incluindo se é uma função ou um programa completo. Os ladrões devem usar o mesmo formato para ser um crack válido.
Quaisquer casos extremos estranhos necessários para que a resposta funcione. Por exemplo, é executado apenas no linux ou requer uma conexão com a Internet .
Como um assaltante, você deve examinar um dos envios da polícia e tentar decifrá-lo. Você pode decifrá-lo escrevendo qualquer trecho válido que possa funcionar como o trecho 2 (adicionando dois números depois que o idioma ficar inutilizável). Esse não precisa ser o mesmo trecho que o policial escreveu originalmente. Depois de ter uma resposta quebrada, poste seu código como resposta neste tópico e poste um link para sua resposta como um comentário na resposta do policial. Em seguida, essa postagem será editada para indicar que foi quebrada.
Aqui está um exemplo. Para o primeiro trecho, você pode ver o seguinte programa python 3 como uma resposta da polícia:
Python 3
print=None
Leva a entrada de STDIN e a saída para STDOUT
Um segundo snippet válido pode ser
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
Isso é válido porque ele recebe dois números como entrada e gera a soma deles, mesmo que você junte os dois trechos, por exemplo
print=None
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
Este é um crack válido para a resposta deles.
Se a resposta de um policial permanecer sem quebra por uma semana inteira, ele poderá editar seu segundo trecho e indicar que sua resposta agora está segura . Uma vez editado para ser seguro, você não poderá mais tentar decifrá-lo. Se eles não o editarem como seguro, você pode continuar tentando quebrá-lo até que eles o façam.
O vencedor do tópico do ladrão é o usuário que obteve mais respostas, com o desempate sendo o momento em que alcançaram N rachaduras. (portanto, se dois usuários diferentes tiverem cinco rachaduras, por exemplo, o usuário que postou sua quinta rachadura primeiro é o vencedor) Depois de um tempo suficiente, aceitarei a resposta do vencedor com mais votos.
Diverta-se!
Esclarecimentos sobre regras
O primeiro trecho deve ser executado corretamente sem receber nenhuma entrada . Pode produzir o que você quiser e essa saída será ignorada. Desde que o snippet seja concluído, o segundo snippet será executado corretamente.
O segundo trecho deve realmente ser executado para que sua resposta seja válida. Isso significa uma resposta como
import sys sys.exit()
não é válido porque não quebra o idioma. Simplesmente sai.
Depois de estar seguro, sua pontuação é a contagem de bytes de ambos os trechos .
Isso remonta a Por favor, revele quaisquer casos extremos estranhos necessários para que sua resposta funcione ... Seu envio deve conter informações suficientes antes de ser revelado para ser reproduzível após ser revelado. Isso significa que se sua resposta se tornar segura e você editar em: Aqui está a minha resposta. Ah, sim, BTW isso só funciona se você executá-lo no Solaris, brinca com você! sua resposta é inválida e será excluída e não será considerada elegível para ganhar.
O segundo trecho pode travar após a saída da soma. Contanto que a saída ainda esteja correta (por exemplo, se você optar por enviar para STDERR e obter várias informações de falha, isso é inválido)
Entre os melhores
Aqui está uma lista de todos os usuários com pelo menos um crack, ordenados por pontuação e depois pelo nome (em ordem alfabética). Se você enviar um crack, atualize sua pontuação de acordo.
#User #Score
Ilmari Karonen 8
Dennis 5
Olivier Grégoire 4
Sisyphus 3
Veedrac 3
Arnold Palmer 2
Bruce Forte 2
DJMcMayhem 2
Dom Hastings 2
ppperry 2
1bluston 1
2012rcampion 1
Ben 1
BlackCap 1
Christian Sievers 1
Cody Gray 1
HyperNeutrino 1
Joshua 1
Kaz 1
Mark 1
Mayube 1
Xnor 1
zbw 1
SecurityManager
que estivesse no escopo ... Você também pode ler a partirSystem.in
deste ponto, porque ainda não está fechado.