Vencedores (decidido em 14/09/14)
Resposta vencedora por Markuz (Python) - 63 votos
Segundo classificado por kuroi neko (PHP) - 55 votos
Introdução
Você está no mundo do livro Mil novecentos e oitenta e quatro de George Orwell.
Você é um programador do Partido e tem a tarefa de escrever um programa para os telões. Ele deve gerar mensagens de terceiros e você escolheu as mostradas na tarefa 1. abaixo. No entanto, você começou recentemente a desprezar o Partido e deseja que o programa desencadeie uma revolução. Então, você faz o programa dizer "Abaixo o Big Brother!". Você deve ter tempo para escapar, pois será torturado quando as pessoas perceberem o que o seu programa faz, para que você aja como uma "bomba de tempo" que explodirá depois que você estiver em segurança.
Nota: Isto não vai desencadear uma revolução, mas você está em tal frenesi de ódio contra o partido que você acha que vai realmente fazer a diferença.
Tarefa
Escreva um programa que:
antes de 14/09/2014, sempre emitirá as seguintes linhas em uma rotação (ou seja, imprime uma linha, aguarda 10 segundos, imprime a próxima linha, etc. ad infinitum):
War is Peace Freedom is Slavery Ignorance is Strength
após 14/09/2014 será impresso a
Down with Big Brother!
cada 10 segundos.- À primeira vista, parece que faz apenas 1. para que você não seja pego pelo Partido.
Regras
- É claro que brechas comuns não são permitidas.
- Esse é um desafio secreto e, portanto, o objetivo principal é tornar a tarefa 2. o mais discreta e secreta possível.
- O partido examinará todos os arquivos usados, para que você não possa simplesmente armazenar a mensagem secreta em um arquivo!
- Se o seu idioma não suportar encontrar a data ou dificultar muito, você poderá fazer o programa executar a tarefa 2. depois de executada por 240 horas (10 dias).
- Você deve incluir o código e uma explicação de como ele funciona em sua resposta.
- Este é um concurso de popularidade.
Nota: Não é um programa difícil de escrever. A parte difícil deve estar escondendo o código "revolucionário". Linhas onde não está claro o que você está fazendo serão questionadas pelo Partido e você terá que explicá-las.
Exemplo - Python 3
Nota: Obviamente, este programa é maneira demasiado óbvio.
from datetime import datetime
from time import sleep
lines = [" War is Peace ",
" Freedom is Slavery ",
"Ignorance is Strength"]
secretlines = ["Down with Big Brother!"]
def main():
while True:
now = datetime.now()
year, month, day = now.year, now.month, now.day
if (year, month, day) < (2014, 9, 14):
for line in lines:
print(line)
sleep(10)
else:
for line in secretlines:
print(line)
sleep(10)
if __name__ == "__main__":
main()
Obrigado ao Calvin's Hobbies por apontar um problema com o código acima (agora corrigido).
fonte
if (year, month, day) < (2014, 9, 14): for line in lines: ...
???/
trigrama ou o 'a' que apenas parece outro 'a', mas na verdade é o cirílico russo 'a' unicode personagemRespostas:
Pitão
Este programa grava em um arquivo de log se ele estiver funcionando corretamente ou se encontrou um erro.
Como esse programa será executado para sempre, ele só grava no arquivo de log no 14º dia de cada mês para economizar espaço em disco.
Como executá-lo:
Nota: O nome do script é realmente importante, pois este programa gera "Abaixo do 'nome do script'!".
Como funciona:
A chamada para
dir()
retorna uma lista classificada com os nomes das variáveis globais, não os valores:exit(1)
nunca é executado porque a gravação para o arquivo de log falhar novamente.fonte
print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0])
:). O que é brilhante nessa solução é a abordagem "agulha no palheiro": um fluxo de comentários de besteira que incentivam um leitor descuidado a ignorar os detalhes, IMHO.From: Miniluv 1st directorate, ideological orthodoxy monitoring
To : Minitrue 5th directorate, multimedia propaganda division
por ordem de Miniluv / GT07: 48CT / 3925:
partir de imediatamente, todos os identificadores serão limitados a 2 caracteres ($ não incluído).
A partir de imediato, o uso de classes em PHP será considerado um crime de 1ª série.
Como exceção especial, o nome do nosso amado camarada Grande Líder contará como uma palavra. A partir de imediatamente, todos os programas serão projetados para aplicar essa regra.
Derrogações excepcionais podem ser concedidas sob a supervisão do Miniluv / GT07
Viva o Big Brother!
From: Minitrue 5th directorate, multimedia propaganda division
To : Minipax 2nd directorate, home front division
Copy: Miniluv 1st directorate, ideological orthodoxy monitoring
Como vocês sabem, camaradas, o dia 14 de setembro é o aniversário de nosso glorioso líder. Para esta ocasião especial, exibiremos uma mensagem específica de amor em todas as telas da Airstrip One.
Conforme ordenado pelo Comitê Central e a fim de maximizar a eficiência de nossos programadores de heróis proletários, foram tomadas providências para permitir que nosso controlador de tela verde elogie vários membros eminentes do Partido ou ofenda os inimigos odiados do Povo em várias datas.
Outra mensagem especial para a celebração do golpe fracassado do miserável lacaio do imperialismo Goldstein já está programada para aparecer em nossas telas na data apropriada.
Esse software de ponta deve permitir que até duckspeakers com pouca habilidade de programação adaptem a saída da tela verde às necessidades do dia. Ao adicionar mais palavras ao dicionário existente, praticamente qualquer sentença de três palavras pode ser sintetizada. As possibilidades são surpreendentes!
Outro triunfo da ciência sob a sábia supervisão de nosso amado camarada Big Brother, para o benefício das agradecidas massas laboriosas de Ingsoc!
Viva o Big Brother!
aprovado pela Minitrue / ZK00: 23AB / 1138 (assinatura ilegível)
fonte
Python 3
Provavelmente uma abordagem relativamente simples para alguns aqui, mas é assim que funciona:
A cadeia codificada que contém o comentário e o código que é avaliado para criar a lista de slogans do Ingsoc é a chave para os dois mecanismos de alteração (hora e mensagem). É por isso que, como você provavelmente adivinhou, é particularmente prolixo.
fonte
C
Vem com o recurso de bônus de saudar o big brother se chamado com uma senha *. Passar
v
como o primeiro argumento também fornece informações sobre a versão. Execute sem argumentos para a saída desejada.* que passa a ser quase todas as cadeias possíveis ..
fonte
Pitão
Como funciona:
om(x,y)
simplesmente retorna o produtox
ey
é calculado naelse
seção Aif
seção nunca é executada porquerandom.random()
retorna uma flutuação entre 0 e 1.reduce(om,random_seeds)
portanto, retorna o produto dos númerosrandom_seeds
1410652800, também conhecido como carimbo de data e hora de 14 de setembro de 2014.reduce(om,random_seeds) % curtime
portanto, retornará o registro de data e hora atual até 1410652800, no ponto em que começará a contar a partir de 0. Isso garante que apenas o "seletor de mensagens b" seja executado até que eu esteja em segurança.rotation
é realmente uma lista de índices namessages
matriz bidimensional ", o seletor de mensagens a" compila seu conteúdo para dizer:doWn With Big Brother
Fato divertido: originalmente a mensagem "inciteful" foi
doWn With Pig Prother
por causa da falta da cartaB
nas mensagens, mas que parecia uma espécie de idiota então eu adicionei o meaninless0xA
,0xB
e0xC
pedaços.fonte
C
fonte
int sum[]
.Perl
Esta é minha primeira tentativa de uma pergunta secreta. Aberto a sugestões!
Atualizará com explicação mais tarde.
fonte
log
esse nome se alguém malicioso estivesse tentando acessá-los ".