Tantangan Anda adalah mengubah input teks ke kode brain-flak yang akan menampilkan teks.
Tutorial diambil dari sini dengan izin di sini
Brain-Flak memiliki dua tumpukan, yang dikenal sebagai 'kiri' dan 'kanan'. Tumpukan aktif dimulai dari kiri. Jika tumpukan kosong muncul, itu akan mengembalikan 0. Itu saja. Tidak ada variabel lain. Ketika program dimulai, setiap argumen baris perintah didorong ke tumpukan aktif.
Satu-satunya karakter yang valid dalam program Brain-Flak adalah ()[]{}<>
, dan mereka harus selalu seimbang. Ada dua jenis fungsi: Nilads dan monad . Sebuah nilad adalah fungsi yang mengambil 0 argumen. Ini semua nilad:
()
Mengevaluasi satu.[]
Mengevaluasi ketinggian tumpukan saat ini.{}
Pop stack aktif. Mengevaluasi nilai yang muncul.<>
Alihkan tumpukan aktif. Mengevaluasi ke nol.
Ini digabungkan bersama ketika mereka dievaluasi. Jadi jika kami memiliki '3' di atas tumpukan aktif, cuplikan ini:
()(){}
akan mengevaluasi 1 + 1 + active.pop()
yang akan mengevaluasi ke 5.
Monad mengambil satu argumen, sepotong kode Brain-Flak. Ini semua monad:
(n)
Tekan 'n' pada tumpukan aktif.[n]
Mengevaluasi ke negatif 'n'{foo}
Meskipun nol tidak ada di atas tumpukan, lakukan foo.<foo>
Jalankan foo, tetapi evaluasilah sebagai 0.
Fungsi-fungsi ini juga akan mengembalikan nilai di dalamnya, jadi
(()()())
Akan mendorong 3 tetapi
((()()()))
Akan mendorong 3 dua kali .
The {}
akan mengevaluasi untuk jumlah semua berjalan. Jadi jika kita memiliki '3' dan '4' di bagian atas tumpukan:
{{}}
akan dievaluasi sebagai 7.
Ketika program selesai dieksekusi, setiap nilai yang tersisa di tumpukan aktif dicetak, dengan baris baru di antaranya. Nilai pada tumpukan lainnya diabaikan.
Aturan
- Anda dapat mengasumsikan bahwa Brain-Flak dijalankan dengan ascii. (
-A
) - Kode brain-flak TIDAK harus memerlukan input
- Semua aturan standar berlaku
- Kode harus dijalankan dalam 1 menit untuk setiap input hingga 1024 byte pada TIO. (Jika tidak ada output TIO tersedia, berikan juru bahasa dan saya akan menjalankannya di mesin saya (mesin saya seharusnya bisa mendekati TIO)).
- Anda harus mendukung input panjang yang berubah-ubah.
- Anda dapat mengambil input dari file.
- Optimalisasi untuk uji kasus tidak diperbolehkan
- Output deterministik diperlukan
- Program tidak perlu stack clean
Uji kasus (coba kode Anda pada ini, teks skor aktual akan dirilis dalam 1-2 minggu setelah tantangan diposting)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
The meaning of brain-flak is to flak your brain with pain.
`1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>?
To be, or not to be, that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles
And by opposing end them. To die-to sleep,
No more; and by a sleep to say we die
<your brain-flak code here>
The fitness pacer test is a multi stage test. Avacado Avacado Avacadad Avacadad carrot.bat carrot.jar carrot.carrot Quack Quack Quack Quack Quack Quack Quack Quack Quack downgoat doawngoat down down gaot
This challenge came from a online program that turned text into brain-fuck. However brain-fuck has limitations and it is not nearly as cool as brain-flak. I really am looking forward to cool programs :) I am glad you took the time to read this and look forward to seeing your answer.
Kemenangan
Untuk menang, Anda harus memberikan total panjang kode kritik otak yang diberikan oleh masing-masing kasus uji yang akan dirilis 1-2 minggu setelah tanggal posting. Total panjang terpendek menang.
CATATAN!!!!!!:
Ini bukan kode-golf , panjang kode Anda tidak akan mempengaruhi skor akhir Anda dengan cara apa pun. Membuat kode yang mudah dibaca bersih dihargai. Terima kasih!
Uji kasus
<your brain-flak code here>
bawah 1000 diberikan hadiah. Yang saya tidak dapat memposting untuk hari lain, whoops; tidak menyadari betapa baru ini.