Emacs, 26 byte (mungkin + 10 = 36, atau - 2 = 24)
Kunci tambahan yang diperlukan dalam jawaban ini adalah Esc. Ini ada di setengah keyboard yang masih utuh, tetapi tidak disebutkan dalam pertanyaan karena beberapa alasan, jadi mungkin atau mungkin tidak memberikan penalti pada skor. ( EscDan Altsetara di Emacs; Altadalah juga pada setengah utuh dari keyboard namun tidak disebutkan dalam pertanyaan, tetapi harus diadakan bukan disadap jadi saya tidak bisa menggunakannya sebagai kunci tambahan saya Ini akan menghemat dua byte. Namun, karena memiliki penyandian yang lebih pendek daripada Esc.)
Program itu sendiri (koma membatasi batas antara byte dalam format on-the-wire yang digunakan Emacs untuk menerima inputnya):
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
Pengkodean ini sebagai byte mentah, untuk membuktikan jumlah byte:
00000000: 5753 1b24 4441 1453 5257 441b 2435 1135 WS.$DA.SRWD.$5.5
00000010: 6618 7200 3118 7267 3114 f.r.1.rg1.
(Catatan: beberapa perincian dapat bervariasi berdasarkan pada bagaimana Emacs dikonfigurasi; jawaban ini membutuhkan tanda kutip-char-radix diatur ke 16, dan bagi Emacs untuk menggunakan kamus periksa ejaan yang default pada sistem Inggris Inggris saya. Keduanya sepertinya seperti pengaturan konfigurasi yang masuk akal, tetapi ada kemungkinan bahwa salinan Emacs Anda dapat dikonfigurasi secara berbeda. Kamus yang berbeda mungkin masih memberikan program 26-byte, tetapi salah eja yang sedikit berbeda mungkin perlu digunakan sehingga koreksi yang kami inginkan dapat diterima oleh kunci yang tidak ditunggangi peluru.)
Penjelasan
Saya tidak yakin apakah itu harus memiliki pengaruh pada perang editor, tetapi Emacs tampaknya mengalahkan vim setidaknya dalam kasus pertanyaan ini. Emacs sangat cocok untuk editor golf yang diukur dalam byte, karena sangat bergantung pada akord yang mengambil beberapa penekanan tombol tetapi hanya satu byte (dengan demikian program Emacs seringkali lebih lambat untuk mengetik daripada program Vim yang setara, tetapi lebih pendek pada disk). Selain itu, sebagian besar perintah Emacs paling penting ada di sudut kiri bawah keyboard, untuk menjadi dekat Ctrl, sangat membantu dengan pertanyaan seperti ini.
"Anda dapat berasumsi Anda memiliki shell juru / sumber editor dibuka sebelum peluru masuk. Sayangnya Anda belum menulis apa pun di dalamnya sebelum keyboard dipukul.", Jadi saya berasumsi bahwa kami memiliki file kosong terbuka di Emacs dan perlu mengetikkan kata sandi ke dalamnya. (Kita perlu menyimpan file setelahnya, dan mungkin keluar dari Emacs, tetapi byte untuk itu tidak dihitung dalam jawaban orang lain jadi saya juga tidak menghitungnya di sini. Ini benar-benar bisa dilakukan menggunakan sisi kiri dari keyboard, meskipun, Ctrl- X, Ctrl- S, Ctrl- X, Ctrl- C.)
Mengambilnya perintah (atau blok perintah serupa) sekaligus:
- W, S: Masukkan
WS
ke dalam dokumen.
- Esc, $: Aktifkan pemeriksa ejaan.
WS
bukanlah kata yang nyata, tetapi ia menemukan banyak kata dua huruf yang serupa.
- D: Menggunakan pemeriksa ejaan, koreksi
WS
ke PS
. (Ketika pemeriksa ejaan dipanggil menggunakan Alt- $, seperti yang terjadi di sini ( Escdan Altsetara dengan Emacs), itu hanya memeriksa satu kata, sehingga dinonaktifkan setelah melakukan ini.)
- A: masukkan
A
, memberi PSA
.
- Ctrl- T: Tukar dua karakter sebelumnya, memberi
PAS
.
- S, R, W, D: Type
SRWD
, pemberian PASSRWD
.
- Esc, $, 5: Kami memohon pemeriksa ejaan lagi, karena kami ingin memperbaiki kami salah eja
PASSRWD
dalam PASSWORD
. Perhatikan bahwa kita tidak dapat menebak kata yang kita inginkan pada percobaan pertama kita, seperti halnya dengan itu PASSWRD
, karena kunci untuk menerima kata asli terdekat adalah 0yang tidak dapat kita tekan. Akibatnya, kesalahan ejaan yang sedikit lebih ekstrem PASSRWD
digunakan untuk mendorong kata yang kita inginkan ke posisi 5, di mana kita dapat menerimanya.
- Ctrl- Q, 5, f: Masukkan karakter dengan kode karakter U + 5f, yaitu
_
. Dokumen sekarang berbunyi PASSWORD_
(atau akan ketika kita mulai mengetik perintah berikutnya; sebelum itu, garis bawah tidak muncul kalau-kalau kita ketik hex digit lain).
- Ctrl- X, r, Ctrl- Space, 1: Simpan posisi kursor saat ini (relatif terhadap awal file) dalam register 1. Untuk beberapa alasan aneh, ini adalah 1-diindeks, sehingga (setelah menulis 9 karakter sejauh) kursor berada pada posisi
10
.
- Ctrl- X, r, g, 1: Salin isi register 1 ke dalam dokumen. Sekarang berbunyi
PASSWORD_10
.
- Ctrl- T: Tukar kedua karakter sebelum kursor. Kami sekarang memiliki
PASSWORD_01
, seperti pertanyaan yang diajukan.
Jika kita diizinkan untuk menggunakan Alt, kita mungkin dapat meng-encode perintah "invoke spellchecker" sebagai byte tunggal a4
daripada mengeja itu sebagai 1b
24
; muncul dua kali, sehingga mengarah ke penghematan dua byte. (Sebagian besar terminal modern digunakan 1b
24
sebagai penyandian untuk Alt- $untuk menghindari bentrokan dengan UTF-8, tetapi a4
penyandian ini juga ditemui dari waktu ke waktu, kadang-kadang tersedia sebagai opsi konfigurasi.)
Kemungkinan penghematan byte mungkin melibatkan kesalahan ejaan golf untuk diperbaiki. PSASWRD
akan menjadi byte yang lebih pendek untuk diketik, tetapi sayangnya, pemeriksa ejaan sepertinya tidak mampu memungutnya PASSWORD
, jadi PASSRWD
adalah pendekatan terbaik yang saya temukan sejauh ini. Pendekatan berbasis register untuk mendapatkan 10
juga sangat sulit, tetapi tidak ada banyak cara untuk membuat angka entah dari mana di Emacs, dan 0
merupakan karakter yang menyakitkan untuk mendapatkan yang sebaliknya. (Setidaknya ada beberapa kebetulan yang sangat berguna: kursor kebetulan berakhir di posisi 10
, yang berisi 0
, tepat saat dibutuhkan; dan fakta bahwa Emacs menerima g
operasi register yang berlebihan untuk memasukkan konten register ke dalam dokumen. , selain lebih intuitifi
.)