Einstellen der Szene:
Es ist ein durchschnittlicher Nachmittag, an dem Sie nach einem langen Tag die Seele baumeln lassen, indem Sie sich auf Ihre Lieblingsbeschäftigung einlassen: die Beantwortung der Fülle faszinierender Fragen zu PPCG. Es war kein guter Tag für dich; Diese verdammten Pyth-Programmierer bekommen immer die beste Antwort, und es bringt deine Stimmung um. Plötzlich stellen Sie fest, dass eine neue Frage gestellt wurde! Sie entscheiden sich; diesmal nicht CJammers. Wütend fängt man an zu tippen und erzeugt einen Strom von Charakteren. ein Fötus der herrlichen BrainFuck-Schleife, die Ihr Endprodukt sein wird. Sie tippen und tippen. Schneller! Immer noch schneller! Sie sind so fokussiert, dass Sie nicht einmal bemerken, dass die Lichter auf Ihrem Bildschirm anfangen zu blinken. Plötzlich leuchtet der Monitor grün, ein fremdartiges Symbol auf dem Desktop. Verwenden Sie Ihre makellosen Fähigkeitencat ~/Desktop/aliensymbol
und erhalten Sie eine Reihe von Zahlen, eine Nachricht präsentiert! Als der kluge PPCG-Programmierer, der Sie sind, bemerken Sie, dass es wie ASCII aussieht. Egal für Sie, Sie print(chr(i) for i in file)
und entschlüsseln die Nachricht. Dein erster Gedanke: "Ich muss das mit der Community teilen!".
...
Wer hätte das gedacht? Dass die ersten Leute, die Kontakt mit Außerirdischen aufnehmen, die bescheidenen Programmierer von PPCG sind. Warum wir? Vielleicht liegt es daran, dass wir der Inbegriff menschlicher Intelligenz sind. Oder vielleicht, weil BrainFuck einer fremden Sprache so nahe kommt wie wir. Nichtsdestotrotz wollen die Außerirdischen - die ultraschlauen Lebensformen, die sie sind - testen, ob sie die menschliche Rasse als intelligent einstufen sollen oder nicht. Als Test für unser geistiges Können haben die Außerirdischen uns gebeten, ihnen ein paar Computerprogramme zu schicken, um zu demonstrieren, dass wir technologisch kultiviert sind. Das Problem ist, dass die einzige menschliche Sprache, die sie verstehen, numerisches ASCII ist!
Hilf der Menschheit, diesen Kreaturen zu zeigen, wer das wahre intellektuelle Alpha ist. Wir müssen ihnen ein Skript senden, das unsere textbasierten Quellcodes in ihre numerischen ASCII-Versionen konvertiert. Leider müssen wir aufgrund unserer unterentwickelten Technologie (danke Obama) ein so kleines Übersetzungsprogramm wie möglich schicken. Gut, dass sie sich entschieden haben, PPCG zu kontaktieren!
Die Herausforderung:
Die Prämisse dieser Herausforderung ist einfach: Sie müssen ein Programm schreiben, das den Quellcode eines beliebigen Programms (oder eine beliebige allgemeine Textdatei) verwendet und eine durch Leerzeichen getrennte Version davon mit einer ASCII-Übersetzung unter jeder Zeile ausgibt. Wenn Sie also eine Textdatei eingeben, müssen Sie jede Zeile dieser Datei ausgeben, gefolgt von einer Zeile, die die ASCII-Darstellung jedes Zeichens in der darüber liegenden Zeile enthält (wobei jede Zahl mit dem Zeichen übereinstimmt, das sie darstellt).
Ein Beispiel wird dies sehr verdeutlichen. Den Quellcode des Berüchtigten hello world
als Eingabe nehmen:
#include <stdio.h>
int main() {
printf("hello, world\n");
return 0;
}
Ihr Programm sollte folgendes ausgeben:
# i n c l u d e < s t d i o . h >
35 105 110 99 108 117 100 101 32 60 115 116 100 105 111 46 104 62 10
10
i n t m a i n ( ) {
105 110 116 32 109 97 105 110 40 41 32 123 10
p r i n t f ( " h e l l o , w o r l d \ n " ) ;
32 32 32 32 112 114 105 110 116 102 40 34 104 101 108 108 111 44 32 119 111 114 108 100 92 110 34 41 59 10
r e t u r n 0 ;
32 32 32 32 114 101 116 117 114 110 32 48 59 10
}
125 10
Implementierungsdetails:
Sie können die Eingabe in einer beliebigen Form vornehmen (Datei öffnen, Befehlszeilen-Pipe, Funktionsparameter usw.) und die Ausgabe auf stdout setzen oder die Ausgabe einer Funktion zurückgeben.
Dinge zu beachten
- Jedes Zeichen in der Ausgabe ist durch ein '\ t' getrennt, damit das dreistellige Leerzeichen in der unteren Zeile in einer Reihe steht (wir gehen davon aus, dass Ihr Tabulator auf 4 oder mehr Leerzeichen eingestellt ist).
- Die Zeilenumbrüche werden in der Zeile angezeigt, in der die Eingabetaste gedrückt wurde (beachten Sie die Zehner im Beispiel).
- Die Druckanforderungen '\ t' und '\ n' sind lax. Ihre Ausgabe muss im Allgemeinen gut aussehen (um zu zeigen, dass die Aliens, die wir haben, auch ästhetisch sind), und wenn Sie die vorherigen beiden Punkte biegen können, während die visuelle Integrität erhalten bleibt, wird Ihnen vergeben.
- Sie können festlegen, ob am Ende der letzten Zeile eine neue Zeile eingefügt werden soll.
Wertung
Dies ist Code-Golf, also gewinnt das kürzeste Programm. Beachten Sie, auch wenn Ihr Programm nicht das kürzeste ist, aber in Bezug auf die Sprache, die Sie verwenden, wirklich nette Tricks verwendet, viele +1 für Sie!
Viel Glück. Das intergalaktische Intelligenzranking der Menschheit ruht auf Ihren Schultern.
Hinweis: Bitte verzeihen Sie die Handlungslöcher. Ich bin kein Schriftsteller : D