Gewinner (entschieden am 14.09.14)
Gewinner-Antwort von Markuz (Python) - 63 Stimmen
Zweiter von kuroi neko (PHP) - 55 Stimmen
Einführung
Sie befinden sich in der Welt des Buches Nineteen Eighty-Four von George Orwell.
Sie sind Programmierer für die Partei und haben die Aufgabe, ein Programm für die Bildschirme zu schreiben. Es sollte pro-party Nachrichten ausgeben, und Sie haben die in Aufgabe 1 unten gezeigten ausgewählt. Sie haben jedoch kürzlich begonnen, die Partei zu verachten, und Sie möchten, dass das Programm eine Revolution auslöst. Also lässt du das Programm "Nieder mit Big Brother!" Sagen. Sie müssen sich Zeit geben, um zu entkommen, da Sie gefoltert werden, sobald die Leute wissen, was Ihr Programm tut. Sie lassen es also als "Zeitbombe" wirken, die explodiert, nachdem Sie sich in Sicherheit gebracht haben.
Hinweis: Dies wird nicht eine Revolution entfachen, aber Sie sind in einem solchen Taumel der Hass gegenüber der Partei , die Sie denken , es wird tatsächlich einen Unterschied machen.
Aufgabe
Schreiben Sie ein Programm, das:
Gibt vor dem 14.09.2014 immer die folgenden Zeilen bei einer Drehung aus (dh druckt eine Zeile, wartet 10 Sekunden, druckt die nächste Zeile usw. unendlich):
War is Peace Freedom is Slavery Ignorance is Strength
nach dem 14.09.2014 wird
Down with Big Brother!
alle 10 Sekunden gedruckt .- Auf den ersten Blick sieht es so aus, als ob es nur 1. so ist, dass Sie nicht von der Partei erwischt werden.
Regeln
- Standardlücken sind natürlich nicht erlaubt.
- Dies ist eine hinterhältige Herausforderung, und daher besteht das Hauptziel darin, Aufgabe 2 so unauffällig und verdeckt wie möglich zu gestalten.
- Die Partei überprüft alle verwendeten Dateien, sodass Sie die geheime Nachricht nicht einfach in einer Datei speichern können!
- Wenn Ihre Sprache das Auffinden des Datums nicht unterstützt oder es sehr schwierig macht, können Sie das Programm veranlassen, Task 2 auszuführen, nachdem es 240 Stunden (10 Tage) ausgeführt wurde.
- Sie sollten den Code und eine Erklärung, wie es funktioniert, in Ihre Antwort aufnehmen.
- Dies ist ein Beliebtheitswettbewerb.
Hinweis: Das Schreiben eines Programms ist nicht schwierig. Der schwierige Teil sollte darin bestehen, den "revolutionären" Code zu verbergen. Zeilen, bei denen nicht klar ist, was Sie tun, werden von der Partei in Frage gestellt, und Sie müssen sie erklären.
Beispiel - Python 3
Hinweis: Offensichtlich ist dieses Programm viel zu offensichtlich.
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()
Vielen Dank an Calvins Hobbys für den Hinweis auf ein Problem mit dem obigen Code (jetzt behoben).
quelle
if (year, month, day) < (2014, 9, 14): for line in lines: ...
???/
Trigraph oder das "a", das nur sieht aus wie ein anderes 'a', ist aber eigentlich das russische kyrillische 'a' Unicode-ZeichenAntworten:
Python
Dieses Programm schreibt in eine Protokolldatei, wenn es ordnungsgemäß ausgeführt wird oder ein Fehler aufgetreten ist.
Da dieses Programm für immer ausgeführt wird, wird es nur am 14. eines jeden Monats in die Protokolldatei geschrieben, um Speicherplatz zu sparen.
Wie man es ausführt:
Hinweis: Der Name des Skripts ist eigentlich wichtig, da dieses Programm "Down with 'script name'!" Ausgibt.
Wie es funktioniert:
Der Aufruf von
dir()
gibt eine sortierte Liste mit den Namen der globalen Variablen zurück, nicht die Werte:exit(1)
wird nie ausgeführt, da das Schreiben in die Protokolldatei erneut fehlschlägt.quelle
print "%s %s %s!" % (wh[47:55:2], wh[55:63:2], iw.argv[0])
:) enthalten. Was bei dieser Lösung brillant ist, ist der "Nadel im Heuhaufen" -Ansatz: eine Flut von Bullshit-Kommentaren, die einen sorglosen Leser ermutigen, die Details zu überspringen, IMHO.From: Miniluv 1st directorate, ideological orthodoxy monitoring
To : Minitrue 5th directorate, multimedia propaganda division
im Auftrag von Miniluv / GT07: 48CT / 3925:
Ab sofort sind alle Bezeichner auf 2 Zeichen begrenzt ($ nicht enthalten).
Ab sofort wird die Verwendung von Klassen in PHP als ein Verbrechen der ersten Klasse betrachtet.
Ausnahmsweise zählt der Name unseres geliebten Genossen Great Leader als ein Wort. Ab sofort sind alle Programme darauf ausgelegt, diese Regel durchzusetzen.
Unter der Aufsicht von Miniluv / GT07 können Ausnahmeregelungen gewährt werden
Es lebe der große Bruder!
From: Minitrue 5th directorate, multimedia propaganda division
To : Minipax 2nd directorate, home front division
Copy: Miniluv 1st directorate, ideological orthodoxy monitoring
Wie Sie wissen, Genossen, ist der 14. September der Jahrestag unseres ruhmreichen Führers. Zu diesem besonderen Anlass werden wir auf allen Bildschirmen von Airstrip One eine bestimmte Liebesbotschaft anzeigen.
Um die Effizienz unserer proletarischen Heldenprogrammierer zu maximieren, wurden Vorkehrungen getroffen, die es unserem Telescreen-Controller ermöglichen, verschiedene bedeutende Parteimitglieder oder trotz verhasster Feinde des Volkes zu verschiedenen Terminen zu loben.
Eine weitere Sonderbotschaft zur Feier des gescheiterten Putsches des erbärmlichen Imperialismus-Lakaien Goldstein soll zu gegebener Zeit bereits auf unseren Bildschirmen erscheinen.
Diese innovative Software sollte es auch Entensprechern mit geringen Programmierkenntnissen ermöglichen, die Bildschirmausgabe an die Bedürfnisse des Tages anzupassen. Durch Hinzufügen weiterer Wörter zum vorhandenen Wörterbuch kann praktisch jeder Satz mit drei Wörtern synthetisiert werden. Die Möglichkeiten sind umwerfend!
Ein weiterer Triumph der Wissenschaft unter der klugen Aufsicht unseres geliebten Genossen Big Brother zugunsten der dankbaren, mühsamen Ingsoc-Massen!
Es lebe der große Bruder!
genehmigt von Minitrue / ZK00: 23AB / 1138 (unleserliche Unterschrift)
quelle
Python 3
Wahrscheinlich eine vergleichsweise einfache Herangehensweise an einige hier, aber so funktioniert es:
Die fest codierte Zeichenfolge, die den Kommentar und den Code enthält, der ausgewertet wird, um die Liste der Ingsoc-Slogans zu erstellen, ist der Schlüssel für beide Änderungsmechanismen (Zeit und Nachricht). Deshalb ist es, wie Sie wahrscheinlich vermutet haben, besonders wortreich.
quelle
C
Kommt mit der Bonus-Funktion, einen großen Bruder zu begrüßen, wenn er mit einem Passwort * angerufen wird. Wenn Sie
v
als erstes Argument übergeben, erhalten Sie auch Versionsinformationen. Führen Sie für die gewünschte Ausgabe keine Argumente aus.* was zufällig fast jede mögliche Zeichenfolge sein ..
quelle
Python
Wie es funktioniert:
om(x,y)
Liefert einfach das Produkt vonx
undy
das imelse
Abschnitt berechnet wird. Derif
Abschnitt wird nie ausgeführt, darandom.random()
ein Gleitkommawert zwischen 0 und 1 zurückgegeben wird.reduce(om,random_seeds)
random_seeds
Gibt daher das Produkt mit den Zahlen 1410652800 zurück, auch bekannt als der Zeitstempel für den 14. September 2014.reduce(om,random_seeds) % curtime
Der aktuelle Zeitstempel wird daher bis 1410652800 zurückgegeben, und ab diesem Zeitpunkt wird von 0 an gezählt. Dadurch wird sichergestellt, dass nur "Nachrichtenauswahl b" ausgeführt wird, bis ich mich in Sicherheit gebracht habe.rotation
ist eigentlich eine Liste von Indizes im zweidimensionalenmessages
Array, "Meldungsselektor a" kompiliert deren Inhalt, um zu sagen:doWn With Big Brother
Fun Fact: ursprünglich die „inciteful“ Botschaft war
doWn With Pig Prother
wegen des Fehlens des SchreibensB
in den Nachrichten, aber das sah irgendwie dumm , so fügte ich die meaninless0xA
,0xB
und0xC
Bits.quelle
C
quelle
int sum[]
.Perl
Dies ist mein erster Versuch, eine hinterhältige Frage zu beantworten. Offen für Vorschläge!
Wird später mit Erklärung aktualisiert.
quelle
log
dem Namen suchen, wenn jemand Bösartiges dies versucht." greifen Sie auf sie zu. "