Победители (решено 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: ...
?
??/
триграф или "а", который только выглядит как еще один «а», но на самом деле это русская кириллица «а» символ юникода