Joe adalah pengembang BF rata-rata Anda. Dia akan memeriksa perubahan kodenya ke repositori mereka ketika dia mendapat telepon dari bosnya. "Joe! Mesin klien baru rusak! Penerjemah brainfuck mengatur semua sel ke nilai acak sebelum eksekusi program. Tidak ada waktu untuk memperbaikinya, kode Anda harus menghadapinya." Joe tidak terlalu memikirkannya, dan akan menulis sebuah program untuk mengatur juta sel pertama menjadi nol, ketika bosnya memotongnya lagi - "... dan jangan berpikir tentang menggunakan brute force, kodenya harus sekecil mungkin. " Sekarang Anda harus membantu Joe yang malang!
Spesifikasi
- Anda akan mendapatkan beberapa kode brainfuck yang valid sebagai input
- Program Anda kemudian akan memodifikasi kode sehingga harus bekerja pada penerjemah brainfuck acak
- Ini berarti bahwa sebelum eksekusi program, sel-sel dapat diatur ke nilai apa pun.
- Program baru harus memiliki perilaku yang sama persis terlepas dari kondisi awal.
- Interpreter akan memiliki nilai sel maksimum 255 dengan pembungkus, dan pita panjang tak terbatas.
Mencetak gol
Skor Anda adalah 10 kali ukuran kompilator dalam byte plus jumlah ukuran test case . Skor terendah jelas menang. Untuk memitigasi terhadap optimalisasi kasus uji, saya berhak mengubah kasus uji sekitar jika saya mencurigai sesuatu, dan mungkin akan melakukannya sebelum memilih pemenang.
Uji Kasus
(Saya mendapatkan ini dari halaman esolangs dan halaman web ini: http://www.hevanet.com/cristofd/brainfuck/ ). Juga terima kasih kepada @Sparr untuk test case terakhir.
- Halo Dunia:
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
- Masukan terbalik:
>,[>,]<[.<]
- Powers of Two (Infinite Stream):
>++++++++++>>+<+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<]>.>[->[ <++>-[<++>-[<++>-[<++>-[<-------->>[-]++<-[<++>-]]]]]]<[>+<-]+>>]<<]
- Kotak Di Bawah 10000:
++++[>+++++<-]>[<+++++>-]+<+[>[>+>+<<-]++>>[<<+>>-]>>>[-]++>[-]+>>>+[[-]++++++>>>]<<<[[<++++++++<++>>-]+<.<[>----<-]<]<<[>>>>>[>>>[-]+++++++++<[>-<-]+++++++++>[-[<->-]+[<<<]]<[>+<-]>]<<-]<<-]
- Aliran Fibonacci:
>++++++++++>+>+[[+++++[>++++++++<-]>.<++++++[>--------<-]+<<<]>.>>[[-]<[>+<-]>>[<<+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<<<-[>+<-]]]]]]]]]]]+>>>]<<<]
- ASCII Urutan hingga input:
,[.[>+<-]>-]
(Yang ini membutuhkan nomor sel yang bervariasi berdasarkan input)