Emacs, 26 байт (можливо + 10 = 36, або - 2 = 24)
Додатковий ключ, який потрібен у цій відповіді, - це Esc. Це на половині клавіатури, яка все ще залишається недоторканою, але з цього питання не згадується з певних причин, тому може не бути певною мірою пенальті. ( Escі Altеквівалентний у Emacs; такожAlt знаходиться на непошкодженій половині клавіатури, але не згадується в питанні, але його потрібно тримати, а не натискати, тому я не можу використовувати його як додатковий ключ. Це дозволить заощадити два байти , однак, оскільки вона має коротше кодування, ніжEsc це робить.)
Сама програма (комами розмежовують межі між байтами у прямому форматі, який Emacs використовує для прийняття свого вводу):
W, S, Esc, $, D, A, Ctrl- T, S, R, W, D, Esc, $, 5, Ctrl- Q, 5, f, Ctrl- X, r, Ctrl- Space, 1, Ctrl- X, r, g, 1, Ctrl-T
Кодування цього як необмеженого байтів, щоб довести кількість байтів:
00000000: 5753 1b24 4441 1453 5257 441b 2435 1135 WS.$DA.SRWD.$5.5
00000010: 6618 7200 3118 7267 3114 f.r.1.rg1.
(Примітка. Деякі деталі можуть змінюватися залежно від налаштування Emacs; для цієї відповіді потрібна цитата-char-radix встановити на 16, а Emacs використовувати словник перевірки орфографії, який за замовчуванням є у моїй англійській англійській системі. як розумні налаштування конфігурації, але можливо, що ваша копія Emacs може бути налаштована по-іншому. Інший словник, ймовірно, все-таки дасть 26-байтну програму, але, можливо, знадобиться трохи інші написання помилок, щоб потрібні поправки були прийняті ключі без кулі.)
Пояснення
Я не впевнений, чи повинен це впливати на війни за редактор, але, здається, Emacs перемагає vim принаймні у випадку цього питання. Emacs досить підходить для редактора гольфу, виміряного в байтах, оскільки він сильно покладається на акорди, які займають кілька натискань клавіш, але лише один байт (таким чином, програма Emacs часто вводиться повільніше, ніж еквівалентна програма Vim, але коротша на диску). Крім того, більшість найважливіших команд Emacs знаходяться в лівому нижньому куті клавіатури, щоб бути поруч Ctrl, що дуже корисно з таким питанням.
"Ви можете припустити, що ви відкрили редактор оболонки перекладача / джерела до того, як кулі потрапили. На жаль, ви нічого не написали в ньому до того, як клавіатура потрапила", тож я припускаю, що в Emacs відкритий порожній файл і потрібно ввести пароль в нього. (Нам потрібно буде зберегти файл згодом і, ймовірно, вийти з Emacs, але байти для цього не враховуються у відповідях інших людей, тому я тут не рахую їх. Це цілком можливо з використанням лівої сторони клавіатура, хоча, Ctrl- X, Ctrl- S, Ctrl- X, Ctrl- C.)
Беручи це команду (або блок подібних команд) одночасно:
- W, S: Введіть
WS
у документ.
- Esc, $: Викликати перевірку орфографії.
WS
це не справжнє слово, але воно знаходить багато подібних двобуквенних слів.
- D: За допомогою інструмента перевірки орфографії виправте
WS
це PS
. (Коли виклик орфографії використовує Alt- $, як це сталося тут ( Escі Altеквівалент Emacs), він перевіряє лише одне слово, тому після цього він деактивується.)
- A: вставляти
A
, даючи PSA
.
- Ctrl- T: Поміняйте місцями попередні два символи, надаючи
PAS
.
- S, R, W, D: Тип
SRWD
, жертва PASSRWD
.
- Esc, $, 5: Ми закликаємо до орфографії , знову ж , тому що ми хочемо , щоб виправити нашу друкарську помилку
PASSRWD
в PASSWORD
. Зауважте, що ми не можемо здогадатися про слово, яке ми хочемо при першій спробі, як це було б PASSWRD
, оскільки ключове слово для прийняття найближчого реального слова - це те, 0що ми не можемо натиснути. Як результат, трохи більш екстремальне неправильне написання PASSRWD
використовується для просування слова, яке ми хочемо, у позицію 5, де ми можемо його прийняти.
- Ctrl- Q, 5, f: Вставити символ з кодом символу U + 5f, тобто
_
. Тепер документ читається PASSWORD_
(або буде, коли ми почнемо вводити наступну команду; до цього підкреслення не з’явиться у випадку, якщо ми введемо іншу шістнадцяткову цифру).
- Ctrl- X, r, Ctrl- Space, 1: Збереження поточної позиції курсора (щодо початку файлу) в регістрі 1. За якою - дивної причини, це 1-індексується, так (написавши 9 символів до сих пір) курсор знаходиться в положенні
10
.
- Ctrl- X, r, g, 1: Скопіюйте вміст регістра 1 в документ. Тепер він читається
PASSWORD_10
.
- Ctrl- T: Поміняйте два символи перед курсором. Зараз у нас є
PASSWORD_01
, як запитання задається.
Якщо нам дозволено використовувати Alt, ми, ймовірно, можемо кодувати команду "викликати перевірку орфографії" як єдиний байт, a4
а не прописувати її як 1b
24
; вона з’являється двічі, що призводить до двох байтів економії. (Більшість сучасних терміналів використовують 1b
24
для кодування Alt- $щоб уникнути сутичок з UTF-8, але a4
кодування також зустрічається час від часу, іноді доступне як варіант конфігурації.)
Можлива економія байтів, ймовірно, передбачає неправильне написання гравців, щоб виправити. PSASWRD
було б байтом коротше набрати, але, на жаль, інструмент перевірки орфографії не здається здатним PASSWORD
вийти з цього, тому PASSRWD
найкращий підхід, який я знайшов поки що. Підхід до отримання на основі реєстру 10
також є смішно непростим, але в Emacs ніде не існує способів створення чисел, і 0
болісний характер, щоб отримати інше. (Принаймні, було кілька дивовижно корисних збігів: курсор щойно потрапляє в положення 10
, яке містить a 0
, потрібне в разі потреби; і той факт, що Emacs приймає надмірну g
операцію реєстру, щоб вставити вміст регістра в документ , крім більш інтуїтивногоi
.)