Ustawiać scenę:
Jest przeciętne popołudnie, kiedy odpoczywasz po długim dniu, angażując się w ulubioną rozrywkę: odpowiadając na mnóstwo wciągających pytań na temat PPCG. To nie był dobry dzień dla ciebie; ci przeklęci programiści Pyth wciąż otrzymują najlepszą odpowiedź i to zabija twój klimat. Nagle zauważasz nowe pytanie! Podejmujesz decyzję; nie tym razem CJammers. Wściekle zaczynasz pisać, rodząc strumień postaci; płód chwalebnej pętli BrainFuck, którą będzie twój produkt końcowy. Pisz i pisz. Szybciej! Jeszcze szybciej! Jesteś tak skupiony, że nawet nie zauważysz, że światła na ekranie zaczynają migać. Nagle monitor świeci na zielono, symbol podobny do obcego, oznaczony na pulpicie. Wykorzystując swoje nieskazitelne umiejętnościcat ~/Desktop/aliensymboli otrzymaj mnóstwo liczb, wiadomość! Będąc sprytnym programistą PPCG, jakim jesteś, zauważysz, że wygląda jak ASCII. Bez względu na ciebie, ty print(chr(i) for i in file)i rozszyfrujesz wiadomość. Twoja pierwsza myśl: „Muszę się tym podzielić ze społecznością!”.
...
Kto by to pomyślał? Że pierwszymi ludźmi, którzy nawiążą kontakt z kosmitami, będą skromni programiści PPCG. Dlaczego my? Może dlatego, że jesteśmy uosobieniem ludzkiej inteligencji. A może dlatego, że BrainFuck jest tak blisko, jak my, do obcego języka. Niemniej jednak obcy - będąc ultra-inteligentnymi formami życia, którymi są - chcą sprawdzić, czy powinni sklasyfikować rasę ludzką jako inteligentną, czy nie. W celu sprawdzenia naszej sprawności umysłowej, kosmici poprosili nas o przesłanie im kilku programów komputerowych, aby pokazać, że jesteśmy kulturowo technologiczni. Problem polega na tym, że jedynym ludzkim językiem, który rozumieją, jest numeryczna ASCII!
Pomóż ludzkości pokazać tym stworzeniom, kim jest prawdziwa intelektualna alfa. Musimy wysłać im skrypt, który skonwertuje nasze tekstowe kody źródłowe na ich numeryczne wersje ASCII. Niestety, z powodu naszej słabo rozwiniętej technologii (dzięki Obama), musimy wysłać tak mały program tłumaczeniowy, jak to możliwe. Dobrze, że zdecydowali się skontaktować z PPCG!
Wyzwanie:
Założenie tego wyzwania jest proste: masz napisać program, który weźmie kod źródłowy dowolnego programu (lub dowolny ogólny plik tekstowy na ten temat), i wypisze jego oddzieloną spacjami wersję z tłumaczeniem ASCII poniżej każdego wiersza. To znaczy, biorąc pod uwagę wejście pliku tekstowego, musisz wypisać każdy wiersz tego pliku, a następnie wiersz zawierający reprezentację ASCII każdego znaku w wierszu nad nim (z każdą liczbą wyrównaną do znaku, który reprezentuje).
Przykład bardzo to wyjaśni. Biorąc kod źródłowy niesławnego hello worldjako dane wejściowe:
#include <stdio.h>
int main() {
printf("hello, world\n");
return 0;
}
twój program powinien wypisać:
# 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
Szczegóły dotyczące wdrożenia:
Możesz wybrać wejście w dowolnej formie (otwarcie pliku, potok wiersza poleceń, parametr funkcji itp.) I powinieneś wyjść na standardowe wyjście lub zwrócić wyjście z funkcji.
Warto zwrócić uwagę
- Każdy znak na wyjściu jest oddzielony znakiem „\ t”, aby pozwolić na umieszczenie 3 cyfr w wierszu poniżej na wyrównanie (zakładamy, że twoja tabulacja jest ustawiona na 4 spacje lub więcej).
- Nowe linie są wyświetlane w wierszu, w którym naciśnięto klawisz powrotu (zwróć uwagę na 10 w przykładzie)
- Wymagania dotyczące drukowania „\ t” i „\ n” są luźne. Twój dorobek musi, w ogólnym sensie, wyglądać przyjemnie dla oka (musisz pokazać tym kosmitom, którzy również mamy zmysł estetyczny), a jeśli możesz zgiąć dwa poprzednie punkty przy zachowaniu integralności wizualnej, otrzymasz wybaczenie.
- Możesz założyć, czy na końcu ostatniego wiersza znajduje się nowy wiersz.
Punktacja
To jest golf golfowy, więc wygrywa najkrótszy program. Uwaga, nawet jeśli twój program nie jest najkrótszy, ale używa naprawdę schludnych sztuczek w stosunku do używanego języka, wiele +1 dla Ciebie!
Powodzenia. Międzygalaktyczny ranking inteligencji ludzkości spoczywa na twoich barkach.
Uwaga: wybacz dziury w fabule. Nie jestem pisarzem : D