Не забудьте побачити інший виклик, Зворотну карту символів ASCII !
Набір діаграм ASCII (Американський стандартний код для обміну інформацією) є найбільш широко використовуваним стандартом кодування символів. Коди ASCII представляють текст у комп’ютерах, телекомунікаційному обладнанні та інших пристроях.
Виклик
Ваше завдання полягає в тому, щоб надрукувати відображення набору символів ASCII, коли користувач вводить їх. GIF:
Після введення користувачем кожного символу ASCII, вихід повинен виглядати так:
Картографування
Кожному символу призначена позиція на логічній сітці 16х6, починаючи з символу пробілу у верхньому лівому положенні та загортаючи таким чином, що під ним відображається цифра 0.
Коли надходить вхід ASCII для друку, надрукуйте цей символ ASCII у призначеному для нього екрані, не видаляючи жодного із символів, що перебувають на екрані.
Правила
- Вашій програмі потрібно лише відобразити ASCII символи
0x20
для друку для0x7E
. - Ваша програма не повинна завершуватись і продовжувати відображати символи на екрані, поки не будуть введені всі друковані символи ASCII. З цього моменту ваша програма може або припинити роботу, або перебігти в Neverland.
- Програма може відображати символи будь-яким способом, наприклад, електронною таблицею, таблицею, вікном консолі або графічним вікном.
- Незалежно від того, як ви відображаєте відображення, воно повинно бути оновлене в режимі реального часу (як тільки воно отримає введення користувача).
- Якщо ваша програма не читає введення мовчки, вона повинна вивести курсор з шляху, щоб текст не заважав карті.
Довідка
Ось алгоритм псевдокоду, який я використовував для створення GIF:
loop forever
c = input
y_coord = c / 16
x_coord = c - y * 16
if c is printable
print c at (x_coord * 2 + 1, y_coord + 1)
end if
end loop
Може бути інший спосіб досягти необхідного результату. Ви можете скористатися моїм алгоритмом або власним алгоритмом, але вихід повинен бути однаковим незалежно.
Ось корисна посилання на таблицю ASCII.
Оцінка балів
Відповідь виграє найменше байтів у кожній мові. Веселіться!