Masalah
Anda harus menulis sebuah program yang, ketika Kode Konami diketik saat runtime, mencetak string " +30 lives
" dan membunyikan suara pilihan Anda dari pengeras suara komputer.
Definisi
"Kode Konami" didefinisikan sebagai UUDDLRLRBA
diikuti dengan menekan tombol enter.
Aturan
- Anda dapat memilih untuk menggunakan panah atas untuk
U
, bawah untukD
, kiri untukL
, dan kanan untukR
, selama kode Anda konsisten dengan panah atau huruf. - Masukan Anda mungkin diterima dari pengontrol atau keyboard, tetapi tidak perlu mendukung keduanya.
Jawaban yang ada dapat terus digunakan
BABA
sebagai gantiBA
, tetapi juga dapat mempersingkat jika mereka ingin melakukannya. Semua jawaban di masa depan harus digunakanBA
untuk konsistensi.Masukan kosong tidak perlu didukung.
Jawaban:
05AB1E , 33 byte (Fine on Empty Input)
Cobalah online!
05AB1E ,
3026 byte (Gagal pada Input Kosong)-4 Terima kasih kepada Adnan
Cobalah online!
Penafian: Suara bel tidak diputar di TryItOnline, mungkin tanyakan pada Dennis apakah salah satu servernya sedang melakukan ping ketika Anda menjalankannya.
sumber
"+30 lives"
adalah“+30™‹“
:)JavaScript (ES6),
202200198 byteDiuji hanya di Chrome dan Firefox. Menggunakan
UDLR
daripada tombol panah. Pastikan CapsLock tidak aktif.sumber
Python 3,
5553 byte-1 byte terima kasih kepada isaacg (gunakan bitwise untuk tidak mengganti
-10
dengan~9
).-1 byte berkat CalculatorFeline (dimungkinkan untuk menggunakan
BEL
byte literal ).di mana yang
7
ditunjukkan di atas adalah byte literal0x07
(yang tidak dicetak dalam blok kode).Setelah masuk ditekan
while
kondisi loop diperiksa. Jika yang terakhir~9
= 10 karakter (paling banyak) tidak cocok dengan kode perintah Contra maka no-op1
dieksekusi (penggantianpass
untuk singkatnya); jika mereka lakukan sesuai maka sementara loop berakhir danprint
pernyataan dieksekusi, yang menulis teks yang diperlukan bersama dengan karakter ASCII bel ( "alarm"),0x07
yang menghasilkan suara kecuali telah secara eksplisit dinonaktifkan (atau terminal tidak memiliki speaker !).sumber
-10
=~9
, yang dapat menghemat satu byte.\n
string dalam golf Python, mengapa mereka tidak menggunakannya\x0a
?Jelly,
33302927 byteTernyata, append (
ṭ
) tidak diperlukan, string secara otomatisdigabungkan bersama-sama dicetak.Tidak terkompresi
Cobalah online
Jika Anda menghapus semuanya setelah itu
¿
, Anda dapat mengacaukan dengan input dan melihatnya hanya kembali ketika string input sudah benar.Terima kasih @ JonathanAllan untuk membantu saya mencari kompresi string :)
sumber
“+30 lives”
terkompresi adalah“¡}ʠƈ[ỵ»
(untuk referensi di masa depan di sini adalah posting tentang itu, itu tertaut dalam tutorial tentang wiki Jelly).7Ọ
diikuti oleh cetakan implisit dari nilad“¡}ʠƈ[ỵ»
, muncul di stdout seolah-olah itu adalah gabungan. Sebagai etalase, Anda dapat mencoba menambahkan waktu tidur 2 detik di antaranyaɠ⁻“UUDDLRLRBABA”$¿ṛ7Ọ2“+30 lives”œS
.Memproses,
161157155 byteFile audio harus disimpan sebagai
sketchName/data/a.mp3
. Catatan: Saya hanya menguji program ini tanpa file audio karena saya terlalu malas untuk mengunduhmp3
file (karena hanya ekstensi terbatas yang didukungprocessing.sound.SoundFile
).The
draw()
fungsi yang dibutuhkan untuk berada di sana dalam rangka untukkeyTyped
bekerja.Alasan kami menggunakan
keyTyped
ini karena Pemrosesan tidak memiliki STDIN, hanya dapat mendengarkan tombol yang ditekan melalui sketsa yang sedang dijalankan.Penjelasan
Semua penekanan tombol pengguna disimpan sebagai karakter di dalam String
k
. InikeyTyped
adalah fungsi bawaan yang dipanggil setiap kali pengguna mengetik kunci. Secara bersamaan, kami memeriksa apakah String ini diakhiri dengan penekanan tombol. Kemudian kami mencetak+30 lives
dan memutar file suara. Dandraw
fungsinya ada untuk terus memperbaruikeyTyped
. Setelah kode Konami dimasukkan, maka tidak ada lagi yang akan dikeluarkan dan tidak ada audio yang diputar.sumber
.mp3
file tidak terlalu penting karena tidak peduli apa pun itu, Memproses akan memainkannya sebagai suara> <>,
132696462 byte*> <> , 84 byteCoba di sini!
Ini bergantung pada lonceng lonceng (ascii
7
) untuk suara di akhir (tidak terdengar pada penerjemah online).Terima kasih kepada @TealPelican untuk menyimpan 15 byte lagi!
Disimpan dua byte untuk memeriksa
BA
bukannyaBABA
.sumber
C 119 -1 - 2 = 116 byte
Golf
Tidak disatukan
sumber
s/UUDDLRLR BABA/UUDDLRLRBABA
untuk -1 byte dan strcmp akan mencari string yang benar!Ditumpuk , 41 byte
Membaca input dari keyboard.
sumber
AutoHotkey, 63 byte
Setelah menjalankan skrip ini, ia akan memeriksa apakah 10 kunci berikutnya adalah kode Konami dan jika ya, itu akan menampilkan kotak pesan bertuliskan "+30 live" dan itu akan memainkan bunyi bip (saya tidak punya speaker sekarang untuk menguji ).
sumber
GNU sed,
3225 + 1 =3326 byte+1 byte untuk
-n
bendera.Cobalah online!
Penjelasan
Setiap kali enter ditekan (
$
), program akan memeriksa apakah 10 penekanan tombol sebelumnya adalah kode. Jika ya,a
perintah akan mengantri teks+30 Lives
dan suara bel (\a
) untuk dicetak pada akhir siklus saat ini (yang, dalam hal ini, segera).sumber
BA
sekali saja.Mathematica, 50 byte
Awalnya,
x
hanya sebuah simbol dan karenanya tidak identik (=!=
) dengan simbolUUDDLRLRBA
, jadix=Input[]
dievaluasi. Ini akan membuka kotak dialog dengan kursor sudah ada di bidang input, sehingga pengguna dapat segera mulai mengetik di keyboard.Jika
Enter
ditekan atauOK
diklik tanpa mengetik apa pun, makaInputField[]
akan kembaliNull
, yang tidak identik denganUUDDLRLRBA
, sehingga loop berlanjut dan kotak dialog lain akan dibuka.Jika pengguna mengklik
Cancel
atau keluar dari kotak dialog, makaInputField
akan kembali$Canceled
, yang juga tidak identikUUDDLRLRBA
, sehingga loop akan terus berlanjut.Pengguna dapat mengetik di kotak dialog sesuai keinginan hati mereka. Ketika mereka menekan
Enter
, input mereka ditafsirkan sebagai ekspresi bahasa Wolfram (mungkin hanya kotak). Jika ungkapan itu selain simbolUUDDLRLRBA
, perulangan akan berlanjut."Harus diulang sampai kode Konami dimasukkan" agak kabur, tapi saya yakin ini memuaskan. Setelah itu
While
loop selesai ,.Beep[]
;"+30 lives"
sumber
UUDDLRLRB
? Di manaA
?Petit Computer BASIC, 91 byte
Akhirnya solusi yang benar-benar menggunakan input pengontrol!
Saya menggunakan Petit Computer daripada versi yang lebih baru (SmileBASIC) karena memiliki akses ke tombol Start, dan
BTRIG()
lebih pendek dariBUTTON()
.Saya telah mengganti string data dengan
x
, itu harus berisi karakter dengan kode ascii 1,1,2,2,4,8,4,8,32,16Versi membosankan, 46 byte
sumber
Powershell,
8986 Bytesmasukkan mengirimkan string ke
Read-Host
, jadi seharusnya .. bekerja?sumber
C # (versi membosankan), 80 byte
C # (Yang menarik), 202 byte
Saya pikir ini berfungsi, sayangnya penguji online tidak mendukung keberadaan input konsol, karena itu saya harus mengikuti tes yang telah saya lakukan
Kemungkinan besar bisa bermain golf sangat - saya tidak hebat dalam hal ini! :)
Tidak Disatukan:
sumber
Console.Readline
tapi saya pikir itu mungkin menjadi roh tantangan! Jika itu bagus saya bisa membuat ini lebih pendekConsole.ReadLine()
versiHeran , 50 byte
Ganti
•
dengan karakter kode\x07
(karakter kontrol BEL). Mengambil input melalui STDIN.sumber
fleksibel, 37 + 5 = 42 byte
Kode itu sendiri adalah 37 byte, kompilasi dengan opsi "-main" yang menambahkan 5 byte. Tentu saja, Anda harus mengkompilasi file C yang dihasilkan dengan kompiler C favorit Anda, tetapi saya tidak berpikir langkah itu harus diperhitungkan terhadap jumlah byte.
Saya bisa menyimpan byte dengan menggunakan karakter BEL literal alih-alih
\a
, tetapi saya lebih suka bisa membaca kode saya sendiri.sumber
-ll
sebagai opsi ke kompiler C daripada-main
sebagai opsi untuk melenturkan.C,
878581 bytesumber
shortC, 52 byte
Penjelasan:
Cobalah online!
sumber
C, 114 byte
sumber