Налаштування сцени:
Це середній день, коли ви розслабляєтесь після довгого дня, займаючись улюбленим проведенням часу: відповідаючи на безліч захоплюючих питань на PPCG. Це був не гарний день для вас; ці прокляті програмісти Pyth продовжують отримувати найкращу відповідь, і це вбиває вашу атмосферу. Раптом ви помічаєте нове запитання було розміщено! Ви складаєте свою думку; не цього разу CJammers. Розлючено ти починаєш друкувати, роблячи потік персонажів; плід славної петлі BrainFuck, якою буде ваш кінцевий продукт. Ви вводите та вводите. Швидше! Ще швидше! Ви настільки зосереджені, що навіть не помічаєте, як світло на екрані починає мерехтіти і вимикатися. Раптом монітор світиться зеленим кольором, чужий символ, нанесений на робочий стіл. Використовуючи свої бездоганні навички, виcat ~/Desktop/aliensymbol
і подаруйте купу чисел, повідомлення! Будучи дотепним програмістом PPCG, який ви є, ви помічаєте, що це схоже на ASCII. Незалежно від вас, ви print(chr(i) for i in file)
і розшифруєте повідомлення. Ваша перша думка: "Мені потрібно поділитися цим спільнотою!".
...
Хто б це подумав? Що першими, хто вступить у контакт із прибульцями, будуть скромні програмісти PPCG. Чому ми? Можливо, це тому, що ми є втіленням людського інтелекту. А може тому, що BrainFuck приблизно так само близький, як ми, до чужої мови. Тим не менш, інопланетяни - будучи ультраінтелектуальними життєвими формами, якими вони є - хочуть перевірити, чи слід класифікувати людський рід як розумний чи ні. Як перевірка нашої психічної майстерності, інопланетяни попросили нас надіслати їм кілька комп’ютерних програм, щоб продемонструвати, що ми технологічно культивовані. Проблема полягає в тому, що єдиною людською мовою, яку вони розуміють, є числовий ASCII!
Допоможіть людству показати тих істот, які справжня інтелектуальна альфа. Нам потрібно надіслати їм скрипт, який перетворить наші текстові вихідні коди в їх чисельні версії ASCII. На жаль, завдяки нашій недостатньо розвиненій технології (спасибі Обамі) ми повинні надіслати якомога менше перекладної програми. Добре, що вони вирішили зв’язатися з PPCG!
Змагання:
Передумова цього виклику проста: ви повинні написати програму, яка буде приймати вихідний код будь-якої програми (або будь-який загальний текстовий файл для цього питання) та вивести проміжку, розділену пробілом, з перекладом ASCII під кожним рядком. Тобто, враховуючи вхід текстового файлу, потрібно вивести кожну рядок цього файлу, а потім рядок, що містить ASCII-представлення кожного символу в рядку над ним (з кожним номером, що вишикується символом, який він представляє).
Приклад значно прояснить це. Взявши вихідний код сумнозвісного hello world
як вхідний:
#include <stdio.h>
int main() {
printf("hello, world\n");
return 0;
}
ваша програма повинна виводити:
# 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
Деталі щодо впровадження:
Ви можете взяти вхід у будь-якій формі, яку ви бажаєте (відкриття файлу, труба командного рядка, параметр функції і т.д.), і вам слід вивести в режим stdout або повернути висновок з функції.
Що потрібно відзначити
- Кожен символ у висновку відокремлений символом '\ t', щоб у рядку внизу було розміщено три цифри (ми будемо вважати, що для вашої вкладки встановлено 4 пробіли або більше).
- Нові рядки відображаються на рядку, у якому була натиснута клавіша повернення (зверніть увагу на 10 у прикладі)
- Вимоги до друку '\ t' та '\ n' є неоднозначними. У загальному сенсі ваш результат повинен виглядати приємно для очей (потрібно показати тим прибульцям, що ми також маємо естетичне почуття), і якщо ви зможете зігнути попередні два моменти, зберігаючи візуальну цілісність, вам буде прощено.
- Ви можете припустити, чи існує новий рядок в кінці останнього рядка.
Оцінка балів
Це код-гольф, тому найкоротша програма виграє. Зауважте, навіть якщо ваша програма не найкоротша, але використовує дійсно акуратні хитрощі щодо мови, якою ви користуєтесь, багато +1 для вас!
Удачі. Міжгалактичний рейтинг інтелекту людства лежить на ваших плечах.
Примітка. Пробачте, будь ласка, дірки. Я не письменник : D