Победители (решено 14.09.14)
Победный ответ от Markuz (Python) - 63 голоса
Второе место занял Курой Неко (PHP) - 55 голосов
Введение
Вы находитесь в мире книги Девятнадцать восемьдесят четыре Джорджа Оруэлла.
Вы программист для партии, и вам поручено написать программу для телеэкранов. Он должен выводить сторонние сообщения, и вы выбрали те, которые показаны в задании 1. ниже. Однако недавно вы начали презирать партию и хотите, чтобы программа вызвала революцию. Итак, вы заставляете программу говорить «Долой старшего брата!». Вы должны дать себе время на побег, поскольку вас будут пытать, как только люди поймут, что делает ваша программа, поэтому вы заставите ее действовать как «бомба замедленного действия», которая взорвется после того, как вы отправитесь в безопасное место.
Примечание: Это не вызовет революцию, но вы в таком исступлении ненависти к партии , что вы думаете , что будет на самом деле сделать разницу.
задача
Напишите программу, которая:
до 14/09/2014 всегда будет выводить следующие строки по очереди (т.е. печатать одну строку, ждать 10 секунд, печатать следующую строку и т. д. до бесконечности):
War is Peace Freedom is Slavery Ignorance is Strength
после 14.09.2014 будет печатать
Down with Big Brother!
каждые 10 секунд.- на первый взгляд выглядит так, как будто только 1. чтобы вас не поймала партия.
правила
- Стандартные лазейки , конечно, не допускаются.
- Это закулисная задача, и поэтому главная цель - сделать задачу 2. как можно более незаметной и скрытой.
- Партия рассмотрит все используемые файлы, поэтому вы не можете просто сохранить секретное сообщение в файле!
- Если ваш язык не поддерживает поиск даты или делает его очень трудным, вы можете заставить программу выполнить задачу 2. после ее запуска в течение 240 часов (10 дней).
- Вы должны включить код и объяснение того, как он работает, в ваш ответ.
- Это конкурс популярности.
Примечание: это не сложная программа для написания. Трудной частью должно быть сокрытие «революционного» кода. Линии, где неясно, что вы делаете, будут поставлены под сомнение партией, и вам придется их объяснить.
Пример - Python 3
Примечание: Очевидно , что эта программа является способом слишком очевидна.
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()
Спасибо Calvin's Hobbies за указание на проблему с кодом выше (теперь исправлено).
источник
if (year, month, day) < (2014, 9, 14): for line in lines: ...
???/
триграф или "а", который только выглядит как еще один «а», но на самом деле это русская кириллица «а» символ юникодаОтветы:
питон
Эта программа записывает в файл журнала, если он работает нормально или если он обнаружил ошибку.
Поскольку эта программа будет работать вечно, она будет записывать в файл журнала только 14-го числа каждого месяца, чтобы сэкономить место на диске.
Как запустить это:
Примечание: имя сценария действительно важно, так как эта программа выводит «Долой« имя сценария »!».
Как это устроено:
Вызов
dir()
возвращает возвращенный отсортированный список с именами глобальных переменных, а не со значениями:exit(1)
Никогда не выполняется , потому что запись в лог - файл не удается снова.источник
print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0])
:). В этом решении блестящим является подход «иголка в стоге сена»: поток комментариев от дерьма, побуждающих неосторожного читателя пропустить детали, ИМХО.From: Miniluv 1st directorate, ideological orthodoxy monitoring
To : Minitrue 5th directorate, multimedia propaganda division
по заказу Miniluv / GT07: 48CT / 3925:
вступает в силу немедленно, все идентификаторы будут ограничены 2 символами ($ не включен).
Сразу после вступления в силу, использование классов в PHP будет считаться преступлением 1-го класса.
В качестве особого исключения имя нашего любимого товарища великого вождя будет считаться одним словом. Вступают в силу немедленно, все программы будут разработаны для обеспечения соблюдения этого правила.
Исключительные отступления могут быть предоставлены под наблюдением Miniluv / GT07
Да здравствует Большой Брат!
From: Minitrue 5th directorate, multimedia propaganda division
To : Minipax 2nd directorate, home front division
Copy: Miniluv 1st directorate, ideological orthodoxy monitoring
Как вы хорошо знаете, товарищи, 14 сентября - годовщина нашего славного руководителя. Для этого особого случая мы будем показывать особое послание любви на всех экранах Airstrip One.
В соответствии с распоряжением Центрального комитета и для того, чтобы максимально повысить эффективность наших пролетарских героев-программистов, были приняты меры, позволяющие нашему контролеру на телеэкране восхвалять различных видных членов партии или несмотря на ненавистных врагов народа в разные дни.
Еще одно специальное сообщение для празднования неудавшегося переворота убогого лакея империализма Гольдштейна уже запланировано появиться на наших экранах в соответствующую дату.
Это передовое программное обеспечение должно позволять даже утиным динамикам с низкими навыками программирования адаптировать вывод на телеэкране к потребностям дня. Добавляя больше слов в существующий словарь, можно синтезировать практически любые три слова. Возможности ошеломляют!
Еще один триумф науки под мудрым руководством нашего любимого товарища Большого Брата на благо трудолюбивых масс Ингсок!
Да здравствует Большой Брат!
одобрен Minitrue / ZK00: 23AB / 1138 (неразборчивая подпись)
источник
Python 3
Вероятно, сравнительно простой подход к некоторым здесь, но вот как это работает:
Жестко закодированная строка, содержащая комментарий и код, который оценивается для составления списка лозунгов Ingsoc, является ключом для обоих механизмов изменения (время и сообщение). Вот почему, как вы уже догадались, это особенно многословно.
источник
С
Поставляется с бонусной функцией приветствия старшего брата при вызове с паролем *. Передача
v
в качестве первого аргумента также дает информацию о версии. Запустите без аргументов для желаемого вывода.* это почти каждая возможная строка
источник
питон
Как это устроено:
om(x,y)
просто возвращает произведениеx
иy
которое рассчитывается вelse
разделе.if
Секция никогда не работает , потому чтоrandom.random()
возвращает поплавок между 0 и 1.reduce(om,random_seeds)
поэтому возвращает произведение чисел, вrandom_seeds
которых 1410652800, то есть отметку времени 14 сентября 2014 года.reduce(om,random_seeds) % curtime
поэтому вернет текущую временную метку до 1410652800, после чего она начнет отсчет с 0. Это гарантирует, что будет работать только «селектор сообщений b», пока я не доберусь до безопасности.rotation
на самом деле это список индексов в двумерномmessages
массиве, «селектор сообщений а» компилирует их содержимое, чтобы сказать:doWn With Big Brother
Интересный факт: первоначально «inciteful» сообщение было
doWn With Pig Prother
из - за отсутствия буквыB
в сообщениях, но это выглядело вроде глупо , поэтому я добавил meaninless0xA
,0xB
и0xC
биты.источник
С
источник
int sum[]
.Perl
Это моя первая попытка закулисного вопроса. Открыты для предложений!
Буду обновлять с объяснением позже.
источник
log
именем, если кто-то пытается это сделать. доступ к ним. "