Pemenang (diputuskan 14/09/14)
Memenangkan jawaban oleh Markuz (Python) - 63 suara
Runner up oleh kuroi neko (PHP) - 55 suara
pengantar
Anda berada di dunia buku Nineteen Eighty-Four karya George Orwell.
Anda adalah seorang programmer untuk Partai dan ditugaskan untuk menulis sebuah program untuk telescreens. Seharusnya menampilkan pesan pro-partai, dan Anda telah memilih yang ditunjukkan pada tugas 1. di bawah ini. Namun, Anda baru-baru ini mulai membenci Partai, dan Anda ingin program itu memicu revolusi. Jadi, Anda membuat program mengatakan "Down with Big Brother!". Anda harus memberi diri Anda waktu untuk melarikan diri, karena Anda akan disiksa begitu orang menyadari apa yang program Anda lakukan, sehingga Anda menjadikannya sebagai "bom waktu" yang akan meledak setelah Anda pergi ke tempat yang aman.
Catatan: Ini tidak akan memicu revolusi, tetapi Anda berada dalam kegilaan kebencian terhadap partai yang Anda pikir itu benar-benar akan membuat perbedaan.
Tugas
Tulis sebuah program yang:
sebelum 14/09/2014, akan selalu menampilkan baris berikut pada rotasi (yaitu mencetak satu baris, menunggu 10 detik, mencetak baris berikutnya, dll. tak terhingga):
War is Peace Freedom is Slavery Ignorance is Strength
setelah 14/09/2014 akan dicetak
Down with Big Brother!
setiap 10 detik.- pada pandangan pertama sepertinya hanya 1. sehingga Anda tidak akan tertangkap oleh Partai.
Aturan
- Celah standar tentu saja tidak diizinkan.
- Ini adalah tantangan yang curang , dan karenanya tujuan utama adalah menjadikan tugas 2. sesederhana dan sekompleks mungkin.
- Pihak akan melihat semua file yang digunakan, sehingga Anda tidak bisa hanya menyimpan pesan rahasia dalam file!
- Jika bahasa Anda tidak mendukung menemukan tanggal, atau membuatnya sangat sulit, Anda dapat membuat program menjalankan tugas 2. setelah dijalankan selama 240 jam (10 hari).
- Anda harus memasukkan kode dan penjelasan tentang cara kerjanya dalam jawaban Anda.
- Ini adalah kontes popularitas.
Catatan: Ini bukan program yang sulit untuk ditulis. Bagian yang sulit adalah menyembunyikan kode "revolusioner". Baris di mana tidak jelas apa yang Anda lakukan akan diinterogasi oleh Partai, dan Anda harus menjelaskannya.
Contoh - Python 3
Catatan: Jelas program ini adalah cara terlalu jelas.
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()
Terima kasih kepada Calvin Hobi untuk menunjukkan masalah dengan kode di atas (sekarang sudah diperbaiki).
sumber
if (year, month, day) < (2014, 9, 14): for line in lines: ...
???/
trigraph, atau 'a' yang hanya terlihat seperti 'a' yang lain tetapi sebenarnya cyrillic Rusia 'a' karakter unicodeJawaban:
Python
Program ini menulis ke file log jika berjalan baik atau jika mengalami kesalahan.
Karena program ini akan berjalan selamanya, itu hanya menulis ke file log pada hari ke 14 setiap bulan untuk menghemat ruang disk.
Cara menjalankannya:
Catatan: Nama skrip sebenarnya penting, karena program ini menghasilkan "Turun dengan 'nama skrip'!".
Bagaimana itu bekerja:
Panggilan untuk
dir()
mengembalikan daftar yang diurutkan dengan nama-nama variabel global, bukan nilainya:exit(1)
tidak pernah dieksekusi karena penulisan ke file log gagal lagi.sumber
print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0])
:). Apa yang cemerlang dalam solusi ini adalah pendekatan "jarum di tumpukan jerami": aliran komentar omong kosong yang mendorong pembaca yang ceroboh untuk melewatkan detail, IMHO.From: Miniluv 1st directorate, ideological orthodoxy monitoring
To : Minitrue 5th directorate, multimedia propaganda division
atas perintah Miniluv / GT07: 48CT / 3925:
Efektif dengan segera, semua pengidentifikasi akan dibatasi hingga 2 karakter ($ tidak termasuk).
Efektif dengan segera, penggunaan kelas dalam PHP akan dianggap sebagai pemikiran kelas 1.
Sebagai pengecualian khusus, nama Pemimpin Besar Kamerad tercinta kita akan dihitung sebagai satu kata. Efektif dengan segera, semua program akan dirancang untuk menegakkan aturan ini.
Pengurangan yang luar biasa dapat diberikan di bawah pengawasan Miniluv / GT07
Hidup Kakak!
From: Minitrue 5th directorate, multimedia propaganda division
To : Minipax 2nd directorate, home front division
Copy: Miniluv 1st directorate, ideological orthodoxy monitoring
Seperti yang Anda ketahui, kawan-kawan, tanggal 14 September adalah hari jadi pemimpin kita yang mulia. Untuk acara khusus ini, kami akan menampilkan pesan cinta tertentu pada semua teleskop Airstrip One.
Seperti yang diperintahkan oleh Komite Sentral dan untuk memaksimalkan efisiensi programer pahlawan proletar kita, ketentuan telah dibuat untuk memungkinkan pengontrol layar teleskop kita memuji berbagai anggota Partai terkemuka atau meskipun membenci musuh-musuh Rakyat pada berbagai tanggal.
Pesan khusus lainnya untuk merayakan kudeta yang gagal dari imperialisme yang buruk, Goldstein, sudah dijadwalkan muncul di layar kita pada tanggal yang tepat.
Perangkat lunak canggih ini harus memungkinkan bahkan bebek speaker dengan keterampilan pemrograman rendah untuk mengadaptasi output telescreen dengan kebutuhan saat itu. Dengan menambahkan lebih banyak kata ke kamus yang ada, hampir setiap kalimat tiga kata dapat disintesis. Kemungkinannya sangat membingungkan!
Kemenangan sains lainnya di bawah pengawasan bijaksana dari saudara kita yang terkasih, Big Brother, untuk kepentingan massa bersyukur Ingsoc yang bersyukur!
Hidup Kakak!
disetujui oleh Minitrue / ZK00: 23AB / 1138 (tanda tangan tidak terbaca)
sumber
Python 3
Mungkin pendekatan yang relatif sederhana untuk beberapa di sini, tetapi ini adalah cara kerjanya:
String hard-coded yang berisi komentar & kode yang dievaluasi untuk membangun daftar slogan Ingsoc adalah kunci untuk kedua mekanisme perubahan (waktu & pesan). Itulah sebabnya, seperti yang mungkin sudah Anda duga, itu sangat bertele-tele.
sumber
C
Dilengkapi dengan fitur bonus memanggil kakak jika dipanggil dengan kata sandi *. Berlalu
v
sebagai argumen pertama juga memberikan info versi. Jalankan tanpa argumen untuk output yang diinginkan.* Yang kebetulan hampir setiap string yang mungkin ..
sumber
Python
Bagaimana itu bekerja:
om(x,y)
hanya mengembalikan produkx
dany
yang dihitung dielse
bagian ini. Theif
Bagian tidak pernah berjalan karenarandom.random()
hasil pelampung antara 0 dan 1.reduce(om,random_seeds)
Oleh karena itu mengembalikan produk nomor dalamrandom_seeds
yang adalah 1410652800, alias stempel waktu untuk 14 September 2014.reduce(om,random_seeds) % curtime
karena itu akan mengembalikan stempel waktu saat ini hingga 1410652800 pada titik mana ia akan mulai menghitung mulai dari 0. Ini memastikan bahwa hanya "selektor pesan b" yang berjalan sampai saya membuatnya aman.rotation
sebenarnya adalah daftar indeks dalammessages
array 2 dimensi , "selector pesan a" mengkompilasi isinya untuk mengatakan:doWn With Big Brother
Fun Fact: awalnya "inciteful" pesan adalah
doWn With Pig Prother
karena kurangnya hurufB
di pesan, tetapi yang tampak agak bodoh jadi saya menambahkan meaninless0xA
,0xB
dan0xC
bit.sumber
C
sumber
int sum[]
.Perl
Ini adalah upaya pertama saya pada pertanyaan curang. Terbuka untuk saran!
Akan diperbarui dengan penjelasan nanti.
sumber
log
nama jika seseorang jahat mencoba untuk akses mereka. "