Emacs, 26 octets (éventuellement + 10 = 36 ou - 2 = 24)
La clé supplémentaire qui est nécessaire dans cette réponse est Esc . Ceci est sur la moitié du clavier qui est encore intact, mais n'est pas mentionné dans la question pour une raison quelconque, donc pourrait ou ne pourrait pas donner une pénalité au score. ( Escet Altsont équivalents dans Emacs; Altest également sur la moitié intacte du clavier, mais n'est pas mentionné dans la question, mais doit être maintenu plutôt que tapoté afin que je ne puisse pas l'utiliser comme clé supplémentaire. Cela économiserait deux octets. , cependant, car il a un encodage plus court que le Escfait.)
Le programme lui-même (les virgules délimitent les limites entre les octets au format on-the-wire utilisé par Emacs pour accepter ses entrées):
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
Encodage en octets bruts pour prouver le nombre d'octets:
00000000: 5753 1b24 4441 1453 5257 441b 2435 1135 WS.$DA.SRWD.$5.5
00000010: 6618 7200 3118 7267 3114 f.r.1.rg1.
(Remarque: certains détails peuvent varier en fonction de la configuration d’Emacs; cette réponse nécessite quoted-char-radix soit défini sur 16 et qu’Emac utilise le dictionnaire de vérification orthographique qui est celui par défaut sur mon système britannique, anglais. paramètres de configuration raisonnables, mais il est possible que votre copie d’Emacs soit configurée différemment. Un dictionnaire différent donnerait tout de même un programme de 26 octets, mais des fautes d’orthographe légèrement différentes devront peut-être être utilisées pour que les corrections souhaitées puissent être acceptées par clés non affectées par balle.)
Explication
Je ne sais pas si cela devrait avoir une influence sur les guerres de l'éditeur, mais Emacs semble battre vim au moins dans le cas de cette question. Emacs est assez bien adapté au golf éditeur mesuré en octets, car il repose fortement sur des accords prenant plusieurs pressions de touche mais un seul octet (ainsi, un programme Emacs est souvent plus lent à taper que le programme Vim équivalent, mais plus court sur disque). En outre, la plupart des commandes Emacs les plus importantes se trouvent dans le coin inférieur gauche du clavier, pour être proche deCtrl très utile pour une question comme celle-ci.
"Vous pouvez supposer que l'éditeur d'interpréteur / source d'interprète est ouvert avant l'entrée des puces. Malheureusement, vous n'avez rien écrit avant le clavier.", Je suppose donc qu'un fichier vide est ouvert dans Emacs et besoin de taper le mot de passe dedans. (Nous aurions besoin de sauvegarder le fichier par la suite, et probablement de quitter Emacs, mais les octets correspondants ne sont pas comptés dans les réponses des autres personnes, donc je ne les compte pas ici non plus. C’est tout à fait réalisable d’utiliser le côté gauche du clavier, cependant, Ctrl- X, Ctrl- S, Ctrl- X,Ctrl - C.)
En prenant une commande (ou un bloc de commandes similaires) à la fois:
- W, S : Entrez
WS
dans le document.
- Esc, $: Invoque le correcteur orthographique.
WS
Ce n'est pas un vrai mot, mais il trouve beaucoup de mots similaires à deux lettres.
- D: En utilisant le correcteur orthographique, corrigez
WS
à PS
. (Lorsque le correcteur orthographique est appelé à l'aide de Alt- $, comme cela est arrivé ici ( Escet Altéquivaut à Emacs), il ne vérifie qu'un mot, il est donc désactivé après l'avoir fait.)
- A: insérer
A
, donner PSA
.
- Ctrl- T: échanger les deux personnages précédents en donnant
PAS
.
- S, R , W, D: Type
SRWD
, donnant PASSRWD
.
- Esc, $, 5: Nous invoquons à nouveau le correcteur orthographique, parce que nous voulons corriger notre mal orthographié
PASSRWD
dans PASSWORD
. Notez que nous ne pouvons pas lui demander de deviner le mot que nous voulons lors de notre premier essai, comme il le ferait avec PASSWRD
, car la clé pour accepter le mot réel le plus proche est celle sur 0laquelle nous ne pouvons pas appuyer. En conséquence, la faute d’orthographe légèrement plus extrême PASSRWD
est utilisée pour pousser le mot que nous voulons en position 5, où nous pouvons l’accepter.
- Ctrl- Q,5 , f: Insérer le caractère avec le code de caractère U + 5f, à savoir
_
. Le document se lit maintenant PASSWORD_
(ou le sera lorsque nous commencerons à taper la commande suivante; avant cela, le trait de soulignement n'apparaît pas si nous saisissons un autre chiffre hexadécimal).
- Ctrl- X, r,Ctrl - Space, 1: Conservez la position du curseur ( par rapport au début du fichier) dans le registre 1. Pour une raison bizarre, c'est 1-indexé, donc (après avoir écrit 9 caractères jusqu'à présent) le curseur est à la position
10
.
- Ctrl- X, r,g , 1: Copiez le contenu du registre 1 dans le document. Il se lit maintenant
PASSWORD_10
.
- Ctrl-T : Permutez les deux caractères avant le curseur. Nous avons maintenant
PASSWORD_01
, comme la question demande.
Si nous en avons le droit Alt, nous pouvons probablement coder la commande "invoke spellchecker" sous forme d'octet unique a4
plutôt que de l'épeler de la manière suivante 1b
24
: il apparaît deux fois, ce qui conduit à deux octets d'économies. (La plupart des terminaux modernes utilisent1b
24
comme codage Alt- $pour éviter les conflits avec UTF-8, mais lea4
codage est également rencontré de temps en temps, parfois disponible en tant qu'option de configuration.)
Les économies d’octets possibles impliquent probablement des erreurs d’orthographe chez les golfeurs. PSASWRD
serait un octet plus court à taper, mais malheureusement, le correcteur orthographique ne semble pas capable d’en glaner PASSWORD
cela, PASSRWD
c’est la meilleure approche que j’ai trouvée jusqu’à présent. L’approche de gagner basée sur les registres 10
est également ridiculement lourde, mais il n’existe pas beaucoup de façons de créer des nombres à partir de nulle part dans Emacs, et .)0
c’est un personnage pénible à obtenir autrement. (Au moins, il y avait quelques coïncidences incroyablement utiles: le curseur arrive en fin de course 10
, ce qui contient un0
, si nécessaire, et le fait qu'Emacs accepte le redondantg
opération de registre pour insérer le contenu d'un registre dans le document. , en plus du plus intuitifi