Ihre Herausforderung besteht darin, ein Programm zu entwickeln, das einen Datenübertragungsstrom nachahmt. Ihr Programm sollte Eingaben von stdin lesen und direkt an stdout ausgeben. Um das Problem interessanter zu machen, ist der Ausgabestream "fehlerhaft" und muss mehrere Anforderungen erfüllen:
- Es sollte eine 10% ige Chance bestehen, dass jedes Zeichen um +1 ASCII-Code verschoben wird (ex 'a' wird zu 'b', '9' wird zu ':') usw.
- Die Eingabe und Ausgabe sollte nur druckbare ASCII-Werte abdecken ('!' Bis '~', Dezimal 33 bis einschließlich Dezimal 126). Wenn der Zufall +1 auf einem '~' (Dezimalzahl 126) auftritt, wird ein '!' (Dezimal 33) sollte stattdessen ausgegeben werden.
- Wenn drei Zeichen zufällig hintereinander verschoben werden, sollte das Programm "FEHLERCODE 4625: NICHT WIEDERHERSTELLBARER FEHLER, BITTE KONTAKTIEREN SIE IHREN SYSTEMADMINISTRATOR" (nachfolgende Zeilenumbruch optional) ausgeben und die Ausführung anhalten.
Um das Problem zu vereinfachen, sind hier einige andere Kriterien:
- Sie können davon ausgehen, dass die Eingabe immer gültig ist. Das heißt, es enthält nur die Werte '!' durch '~'.
- Das Programm sollte fortgesetzt werden, bis drei Zeichen zufällig hintereinander verschoben wurden. Es ist davon auszugehen, dass EOF niemals auftreten wird.
- Die Zufälligkeit muss sich zwischen den Läufen unterscheiden. Wenn Ihr Zufallszahlengenerator gesetzt werden muss, um bei jedem Lauf ein eindeutiges Ergebnis zu erzielen, muss Ihr Code es setzen.
- Sie müssen ein Programm schreiben, keine Funktion.
- Sie müssen Eingaben von stdin nehmen und Ausgaben in stdout schreiben.
- Sie dürfen keine externen Bibliotheken oder Ressourcen verwenden.
- Ihr Code muss einen frei verfügbaren und funktionierenden Intrepreter oder Compiler haben.
Es gelten die Standardregeln für Code-Golf. Gewinner ist derjenige, der in zwei Wochen (Donnerstag, 20. Februar 2014) das kürzeste Programm veröffentlicht hat.