Emacs, 26 bytes (posiblemente + 10 = 36, o - 2 = 24)
La clave adicional que se necesita en esta respuesta es Esc. Esto está en la mitad del teclado que todavía está intacto, pero no se menciona en la pregunta por alguna razón, por lo que podría o no penalizar la puntuación. ( Escy Altson equivalentes en Emacs; tambiénAlt es en la mitad intacta del teclado, pero no se menciona en la pregunta, pero debe mantenerse en lugar de presionarse para que no pueda usarla como mi tecla adicional. Ahorraría dos bytes , sin embargo, porque tiene una codificación más corta que la que Esctiene).
El programa en sí (las comas delimitan los límites entre bytes en el formato en el cable que Emacs usa para aceptar su entrada):
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
Codificación de esto como bytes sin procesar, para probar el recuento de bytes:
00000000: 5753 1b24 4441 1453 5257 441b 2435 1135 WS.$DA.SRWD.$5.5
00000010: 6618 7200 3118 7267 3114 f.r.1.rg1.
(Nota: algunos de los detalles pueden variar según la configuración de Emacs; esta respuesta requiere cita-char-radix se establezca en 16, y para que Emacs use el diccionario de corrección ortográfica que está predeterminado en mi sistema de inglés británico. Ambos parecen como ajustes de configuración razonables, pero es posible que su copia de Emacs se configure de manera diferente. Es probable que un diccionario diferente todavía dé un programa de 26 bytes, pero es posible que se deban usar errores ortográficos ligeramente diferentes para que las correcciones que deseamos puedan ser aceptadas por teclas sin viñetas).
Explicación
No estoy seguro de si debería tener alguna influencia en las guerras del editor, pero Emacs parece vencer a vim al menos en el caso de esta pregunta. Emacs es bastante adecuado para el editor de golf medido en bytes, ya que depende en gran medida de los acordes que ocupan múltiples pulsaciones de teclas pero solo un byte (por lo tanto, un programa Emacs a menudo es más lento de escribir que el programa Vim equivalente, pero más corto en el disco). Además, la mayoría de los comandos más importantes de Emacs se encuentran en la esquina inferior izquierda del teclado, para estar cerca Ctrl, muy útiles con una pregunta como esta.
"Puede suponer que tiene abierto el intérprete shell / editor de fuente antes de que aparecieran las viñetas. Lamentablemente, no ha escrito nada antes de que se golpeara el teclado", así que supongo que tenemos un archivo vacío abierto en Emacs y necesita escribir la contraseña en él. (Necesitaríamos guardar el archivo después, y probablemente salir de Emacs, pero los bytes para eso no se cuentan en las respuestas de otras personas, así que tampoco los estoy contando aquí. Es totalmente factible usando el lado izquierdo del teclado, sin embargo, Ctrl- X, Ctrl- S, Ctrl- X, Ctrl- C.)
Tomándolo como un comando (o bloque de comandos similares) a la vez:
- W, S: Ingrese
WS
en el documento.
- Esc, $: Invocar el corrector ortográfico.
WS
no es una palabra real, pero encuentra muchas palabras similares de dos letras.
- D: Usando el corrector ortográfico, corrige
WS
a PS
. (Cuando se invoca el corrector ortográfico usando Alt- $, como sucedió aquí ( Escy Altson equivalentes a Emacs), solo verifica una palabra, por lo que se desactiva después de hacer esto).
- A: insertar
A
, dar PSA
.
- Ctrl- T: intercambia los dos caracteres anteriores, dando
PAS
.
- S, R, W, D: Tipo
SRWD
, las donaciones PASSRWD
.
- Esc, $, 5: Invocamos el corrector ortográfico de nuevo, porque queremos corregir nuestro mal escrito
PASSRWD
en PASSWORD
. Tenga en cuenta que no podemos hacer que adivine la palabra que queremos en nuestro primer intento, como lo haría con PASSWRD
, porque la clave para aceptar la palabra real más cercana es la 0que no podemos presionar. Como resultado, la falta de ortografía un poco más extrema PASSRWD
se usa para llevar la palabra que queremos a la posición 5, donde podemos aceptarla.
- Ctrl- Q, 5, f: Insertar el carácter con el código de caracteres U + 5f, es decir
_
. El documento ahora se lee PASSWORD_
(o lo hará cuando comencemos a escribir el siguiente comando; antes de eso, el guión bajo no aparece en caso de que escribamos otro dígito hexadecimal).
- Ctrl- X, r, Ctrl- Space, 1: Almacena la posición actual del cursor (en relación con el inicio del archivo) en el registro 1. Por alguna extraña razón, esto es indexada 1, por lo que (después de haber escrito 9 caracteres hasta ahora) el cursor se encuentra en la posición
10
.
- Ctrl- X, r, g, 1: Copia el contenido del registro 1 en el documento. Ahora se lee
PASSWORD_10
.
- Ctrl- T: intercambia los dos caracteres antes del cursor. Ahora tenemos
PASSWORD_01
, como la pregunta pide.
Si se nos permite usar Alt, probablemente podamos codificar el comando "invocar corrector ortográfico" como un solo byte en a4
lugar de deletrearlo como 1b
24
; aparece dos veces, por lo que genera dos bytes de ahorro. (La mayoría de los terminales modernos utilizan 1b
24
como la codificación para Alt- $para evitar choques con UTF-8, pero la a4
codificación también se encuentran de vez en cuando, a veces disponible como una opción de configuración.)
Los posibles ahorros de bytes probablemente impliquen errores ortográficos de golf para corregir. PSASWRD
sería un byte más corto de escribir, pero desafortunadamente, el corrector ortográfico no parece capaz de PASSWORD
deducir eso, por lo que PASSRWD
es el mejor enfoque que he encontrado hasta ahora. El enfoque basado en el registro para ganar 10
también es ridículamente difícil de manejar, pero no hay muchas maneras de crear números de la nada en Emacs, y 0
es un personaje doloroso de lo contrario. (Al menos hubo un par de coincidencias increíblemente útiles: el cursor acaba de terminar en posición 10
, que contiene un 0
, justo cuando es necesario; y el hecho de que Emacs acepta lo redundante ).g
operación de registro para insertar el contenido de un registro en el documento , además de lo más intuitivoi