Người chiến thắng (quyết định 14/09/14)
Trả lời câu trả lời của Markuz (Python) - 63 phiếu
Á quân của Kuroi neko (PHP) - 55 phiếu
Giới thiệu
Bạn đang ở trong thế giới của cuốn sách Nineteen Eighty-Four của George Orwell.
Bạn là một lập trình viên cho Đảng và được giao nhiệm vụ viết một chương trình cho kính thiên văn. Nó sẽ xuất các tin nhắn ủng hộ và bạn đã chọn những tin nhắn được hiển thị trong nhiệm vụ 1. bên dưới. Tuy nhiên, gần đây bạn đã bắt đầu coi thường Đảng, và bạn muốn chương trình châm ngòi cho một cuộc cách mạng. Vì vậy, bạn làm cho chương trình nói "Down with Big Brother!". Bạn phải cho mình thời gian để trốn thoát, vì bạn sẽ bị tra tấn khi mọi người nhận ra chương trình của bạn làm gì, vì vậy bạn làm cho nó hoạt động như một "khung thời gian" sẽ phát nổ sau khi bạn đi đến nơi an toàn.
Lưu ý: Điều này sẽ không châm ngòi cho một cuộc cách mạng, nhưng bạn đang trong sự căm ghét điên cuồng như vậy đối với bữa tiệc mà bạn nghĩ rằng nó thực sự sẽ tạo ra sự khác biệt.
Bài tập, nhiệm vụ
Viết một chương trình:
trước ngày 14/09/2014, sẽ luôn xuất các dòng sau trên một vòng quay (nghĩa là in một dòng, đợi 10 giây, in dòng tiếp theo, v.v. ad infinitum):
War is Peace Freedom is Slavery Ignorance is Strength
sau 14/09/2014 sẽ in
Down with Big Brother!
cứ sau 10 giây.- Thoạt nhìn có vẻ như chỉ có 1. để bạn không bị Đảng bắt.
Quy tắc
- Tất cả các sơ hở tiêu chuẩn là không được phép.
- Đây là một thách thức ngầm , và vì vậy mục tiêu chính là thực hiện nhiệm vụ 2. càng rõ ràng và bí mật càng tốt.
- Đảng sẽ xem xét tất cả các tệp được sử dụng, vì vậy bạn không thể lưu trữ tin nhắn bí mật trong một tệp!
- Nếu ngôn ngữ của bạn không hỗ trợ tìm ngày, hoặc làm cho nó rất khó khăn, bạn có thể làm cho chương trình thực thi tác vụ 2. sau khi nó chạy trong 240 giờ (10 ngày).
- Bạn nên bao gồm mã và giải thích về cách thức hoạt động trong câu trả lời của bạn.
- Đây là một cuộc thi phổ biến.
Lưu ý: Nó không phải là một chương trình khó viết. Phần khó nên được giấu mã "cách mạng". Những dòng không rõ ràng những gì bạn đang làm sẽ bị Đảng đặt câu hỏi và bạn sẽ phải giải thích chúng.
Ví dụ - Python 3
Lưu ý: Rõ ràng chương trình này là cách quá rõ ràng.
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()
Cảm ơn Sở thích của Calvin đã chỉ ra một vấn đề với mã ở trên (hiện đã được sửa).
if (year, month, day) < (2014, 9, 14): for line in lines: ...
?
??/
đố, hoặc 'a' mà chỉ trông giống như một 'a' khác nhưng thực chất là ký tự không gian mạng 'a' của Nga