Cepat! Lari lubang hitam!

28

Ini adalah tahun 87.539.319 dan berjalan-jalan sendirian sekarang sudah lumrah, banyak orang bepergian ke luar angkasa sendirian, didorong oleh apa pun kecuali jetpack di punggung mereka, memprogram jalan mereka dengan komputer dan keyboard pribadi saat mereka pergi.

Anda adalah orang seperti itu; Anda keluar di luar angkasa yang indah dan damai, ketika, tiba-tiba, Anda terjerat oleh gravitasi lubang hitam!

Ketika Anda jatuh ke lubang hitam ini, berputar semakin cepat ke dalam, Anda menyadari satu-satunya peluang Anda untuk bertahan hidup adalah menyiarkan pesan darurat, dan berharap kapal terdekat datang untuk menyelamatkan Anda.

Jadi, Anda keluar keyboard Anda, dan mulai mengetikkan program.

Program Anda bisa dalam bahasa apa pun, dan harus mencetak HELP!ke stdout (PC Anda menyiarkan semua stdout jauh ke kedalaman ruang.)

Namun, saat Anda berada di dekat lubang hitam, keyboard Anda perlahan-lahan menjadi tercabik-cabik!

Asumsikan Anda menggunakan keyboard QWERTY seperti di bawah ini, dan lubang hitam ada di sebelah kiri Anda;

LAYOUT KEYBOARD QWERTY

Ingat, shift kiri dan kanan adalah dua kunci yang berbeda.

setelah setiap penekanan tombol, baris paling kiri dari keyboard Anda (tombol yang ditutupi oleh garis merah paling kiri) dirobek dan terlempar ke lubang hitam!

Jadi, menekan tombol pertama Anda bisa menjadi salah satu tombol pada keyboard, tetapi sejak itu dan seterusnya tak satu pun dari paling kiri Tab , Caps, Shift, Ctrlatau `kunci dapat digunakan, sama sekali . (r-shift dan r-ctrl masih dapat digunakan)

Setelah menekan tombol berikutnya, tombol 1, Q, A, Zdan Altyang terlempar ke jurang, dan tidak dapat digunakan setelahnya. Setelah itu, Anda kehilangan Space, X, S, W, 2dan sebagainya.

Jelas, Anda ingin menyelesaikan program Anda secepat mungkin, sehingga waktu penyelamatan meningkat; karena itu, ini adalah kode-golf, dan program terpendek dalam penekanan tombol menang!

Setiap jawaban harus memberikan daftar penekanan tombol, jadi, jika jawaban saya adalah program ini (dalam bahasa squardibblyack)

!HELP\.

seorang keylist dapat terlihat seperti:

Shift!HELP lepaskan shift \.

panjang: 8

Saya khawatir tantangan ini mungkin terlalu sulit, tetapi saya ingin melihat jawaban yang diajukan!

theonlygusti
sumber
13
Saya meremehkan ini karena rasanya terlalu terkendala untuk memiliki banyak kreativitas.
isaacg
4
Bisakah kita berasumsi bahwa menggunakan shell python tanpa printmemenuhi syarat sebagai STDOUT?
user80551
3
Bagaimana jika keyboard saya memiliki tombol angka?
mbomb007
4
Ini bisa sedikit lebih baik dengan tombol panah.
user80551
6
Apakah caps lock masih efektif jika ditekan meskipun kunci telah hilang?
Josh Caswell

Jawaban:

42

CJam, 11 penekanan tombol

Kodenya adalah

"HELP*")9-

dan keylist adalah

Shift"HELP*") lepaskan shift 9-

dan ini adalah demonstrasi tampilannya:

masukkan deskripsi gambar di sini

dan inilah cara kerjanya:

"HELP*"              "This puts the string HELP* on stack";
       )             "This takes out the last character of the string and puts it
                      on the stack as a character";
        9-           "This simply reduces 9 from the ASCII code of * character
                      present on the stack which makes it an !";
                     "CJam automatically prints everything that is on stack";

Coba kodenya di sini

Pengoptimal
sumber
2
Menggunakan tanda bintang itu cukup pintar! Saya tidak pernah memikirkan itu.
theonlygusti
2
Yah, saya tidak dapat melakukan ini di GolfScript. Agak terlalu lama. Konversi dari integer ke ascii tidak efisien. "HELP*")9-[]+''+. Saya tidak bisa mengetik empat yang terakhir.
mbomb007
3
Saya hanya tahu CJam akan memiliki jawaban ...
Jerry Jeremiah
9
Jadi salah satu bahasa yang paling terbukti di masa depan di dunia adalah CJam.
Fors
5
Awasi jari Anda ketika Anda menekannya E, sepertinya ia akan masuk ke dalam jurang!
Luke Kanada REINSTATE MONICA
3

rs , 10 penekanan tombol (anggap pengguna menggunakan Nano)

Atau editor setara di mana Shifttidak memilih teks.

Ini sebenarnya bukan bahasa pemrograman, tetapi jika seddapat digunakan pada Code Golf, maka rsdapat digunakan.

Right Shift ! Left E Left H Right L P Enter

HELP!

Itu hanya menggantikan string kosong dengan "BANTUAN!", Secara efektif mencetaknya ke layar. Hampir setara dengan skrip sed:

s/^/HELP!/

Bagian kerennya adalah yang rssecara otomatis diletakkan ^/di depan pola pengganti di mana pembatas ( /) tidak ditemukan. Berguna untuk indentasi kode.

kirbyfan64sos
sumber
Anda lupa itu Enterjuga stroke. 10 pukulan.
vapcguy
1
@ vapcguy Benar. Tetap.
kirbyfan64sos
-3

Saya percaya bahwa cara tercepat yang bisa dilakukan dalam skrip apa pun adalah Random's 11 with Pyth, karena bahasa apa pun akan memerlukan beberapa karakter, seperti "p" atau tanda kutip atau tanda bintang atau sesuatu, lalu kata HELP!, dan itu Eakan pergi cepat, berarti penekanan tombol tambahan untuk memindahkan kursor kembali sebelum Edimasukkan H, seperti yang ia temukan, lalu maju lagi untuk Ldan P.

Jika Anda memiliki sesuatu yang memerlukan kata perintah, seperti dispatau echo, Anda harus melakukan spasi terlebih dahulu sebelum robek, Shiftdan !, kemudian gunakan Hometombol untuk memulai kata Anda, dan tombol panah seperti yang dijelaskan secara acak HELP. Tapi Anda akan meraba-raba sampai Anda hanya tersedot atau kehilangan kunci yang Anda butuhkan terlalu cepat untuk melakukan salah satu dari itu. Hanya ada maksimal 14 karakter, dan dengan asumsi yang terakhir adalah \atau |. Anda perlu 10 hanya untuk melakukan HELP!:

SHIFT ! HOME E LT ARROW H RT ARROW L P ENTER

The mendefinisikan "atau *atau Pakan mendapatkan ditekan sesaat sebelum H. Jadi 11 harus menjadi yang tercepat. Atau 9 jika kita mengabaikan tanda seru dan menggunakan huruf besar semua dan tidak memiliki simbol untuk diketik.

Tapi tidak, saya, sebagai sejarawan internet pada tahun 87.539.319 dan semua, dan menjadi paranoid alien dan hujan meteor yang aneh, apalagi lubang hitam, saya tidak akan puas dengan itu. Sebelum saya keluar berjalan-jalan, saya siap, dengan artikel ini saya akan menemukan dalam penelitian saya untuk berterima kasih untuk itu. Saya akan memuat file teks yang sudah memiliki "BANTUAN!" di dalamnya, dan memiliki program yang bisa menulis posisi koordinat saya menggunakan data satelit pelacakan terbaru yang kami miliki ke file itu. Program yang saya sebut "hlp.c", jadi akan pergi:

7 penekanan tombol:

c Home h l p . Enter

Saya sadar saya bisa membuat nama file saya lebih pendek, tetapi tidak ada yang mau menyiarkan posisi mereka secara tidak sengaja dengan mengetik Hdan Enter, terutama jika program juga memberi tahu pihak berwenang (sedikit seperti menelepon 911 ketika Anda tidak memiliki keadaan darurat?) Jadi mari pergi dengan nama file 3 huruf, dan kami akan menganggap kami masih memiliki ekstensi file dengan .dan minimal 1 karakter. Selain itu, menamakannya hlpbukan helpberarti kita menghindari fitur-fitur Bantuan yang tidak menyenangkan dan bawaan saat kita akan mati dalam lubang hitam. Saya menyadari bahwa saya bahkan dapat menghilangkan mengetik .cdengan hanya melakukan h l p Enter, tetapi dengan cara ini saya menghindari mereka yang jahat Please supply file extensionatauCannot find hlpkesalahan ketika saya akan tersedot ke dalam lubang hitam. "Sampah masuk, sampah keluar", toh, masih akan menjadi standar di masa depan.

Jadi gambar saya akan terlihat seperti:

masukkan deskripsi gambar di sini

Dan ini juga mudah diingat, karena satu-satunya "keterbelakangan" adalah mengetik cterlebih dahulu. Sisanya sama seperti nama file.

vapcguy
sumber
2
Pertama-tama, jika Anda akan menjalankan program (yang sudah memiliki kode di dalamnya) maka itu dapat dianggap sebagai kombinasi dari beberapa celah standar . Kedua, ini adalah kode-golf, jadi Anda harus memberikan kode yang sebenarnya, bukan asumsi bahwa kode tersebut sudah ada dalam file bernama . Ketiga, Anda harus memberikan daftar penekanan tombol untuk program, bukan menjalankan program. Keempat, program ...hlp.cC
Pengoptimal
1
... jangan lari seperti itu. Anda harus terlebih dahulu mengkompilasi dan menjalankannya. Jadi Anda setidaknya harus melakukan help.exe(atau help.out) untuk menjalankan file kode yang dikompilasi. Dan terakhir, jika Anda membengkokkan aturan dan memanfaatkan celah terlalu banyak, mengapa tidak sekadar memanggil file h.c?
Pengoptimal
Maksud dengan .cfile adalah bahwa itu bisa CSCRIPT, bukan kode C aktual yang akan membutuhkan kompiler. Memiliki h.cbisa berarti ketika mencoba mengetik nama file lain, dengan hanya 1 karakter dalam nama, yang secara tidak sengaja dipanggil bukan file lain - saya sudah menjelaskannya. Apapun kode yang berada di .cberkas, apakah itu Console.Log("HELP!"), Console.WriteLine("HELP!"), dll, sangat tidak relevan, terutama karena itu juga akan menyertakan kode untuk antarmuka dengan satelit untuk mendapatkan koordinat memperbaiki - sesuatu yang saya yakin di masa depan akan terbuka sumber.
vapcguy
Maksud saya dengan posting ini, juga, adalah untuk menunjukkan bahwa memiliki nama file, atau sesuatu di luar batas aturan, akan menjadi satu-satunya cara untuk mengalahkan 11 penekanan tombol, btw, karena dibutuhkan 10 hanya untuk HELP!, seperti yang saya sebutkan sebelum Kirby, dan hanya kurang, seperti 9, jika kapitalisasi dan penggunaan Shift tidak penting dan kami tidak harus memiliki karakter sebelum atau sesudah HELP, seperti dengan tanda seru, atau dalam kasus Kirby, harus mengetikkan kunci karakter, seperti a patau *untuk memulai program.
vapcguy
Dan help.exedan help.outtidak akan bekerja dengan lubang hitam merobek kunci. Itu eakan hilang pada saat exemuncul, dan thilang ketika mencoba mengetik out. Anda bisa mengetik tdi out, pertama, kemudian tekan Home, dan ketik HELPbagian, tetapi jika Anda bisa menjaga ekstensi untuk 1 karakter, mengapa tidak Anda?
vapcguy