Tujuannya adalah untuk menulis program (apa pun kecuali brainfuck eksplisit) yang mencetak aturan terbaik Barney Stinson :
Baru selalu lebih baik.
ketika ditafsirkan secara normal, tetapi
Legen ... tunggu ... dary!
Saat diproses dengan penerjemah Brainfuck.
Semoga kawan yang paling populer menang. Anda memiliki 72 jam untuk menjadi legendaris.
popularity-contest
polyglot
brainfuck
Thomas Ayoub
sumber
sumber
code-golf
adalah tag terbaik untuk tantangan ini. IMHOpopularity-contest
akan lebih baik.Jawaban:
C #
Jadi saya memutuskan untuk menjadi sedikit lebih ... kreatif dengan entri saya. Kode Brainfuck tertanam ke dalam C # sebagai berbagai operator (bukan dalam komentar atau dalam string hardcoded), sedangkan kode C # itu sendiri beroperasi pada prinsip yang sama dengan cara Brainfuck mencetak karakter (artinya tidak ada string hardcoded, dan C # menghasilkan masing-masing karakter individu sebagai integer kemudian melemparkannya ke char saat mencetak).
Saya yakin saya bisa membuat ini lebih elegan, tapi butuh waktu cukup lama untuk menyelesaikannya.
Semuanya telah diuji pada penerjemah JavaScript Brainfuck ini oleh Cal Henderson dan dengan kompiler C # Visual Studo 2012 (ditargetkan pada .NET framework v4.0).
Ini adalah kode Brainfuck asli yang saya tulis untuk tantangan ini:
Saat menjalankan kode C # melalui penerjemah Brainfuck, Anda berakhir dengan perintah berikut (perhatikan penambahan tanda kurung di awal, ini berasal dari deklarasi array dan tidak melakukan apa-apa, karena sel di bawah penunjuk memori di array sudah menjadi 0):
sumber
Smalltalk
ketik ke ruang kerja dan tekan "doIt", atau kirim ke BF. BF dicuri dari poster lain - terima kasih.
sumber
Javascript / Brainfuck
Versi tidak dikoleksi karena ini bukan kontes kode-golf:
Itu adalah kesempatan bagi saya untuk belajar BF dan itu menyenangkan :)
Kesulitannya adalah tidak pernah menggunakan
,
sebagai BF mengartikannya sebagai input pengguna dan pastikan bahwa byte adalah 0 sebelum digunakan[]
untuk mengakses elemen array.Pengkodean JS cukup sederhana, setiap string sebelum
/
mengkodekan karakter dan setiap panjang string sebelum@
mendefinisikan kode ASCII dalam desimal. (+++++++@++++[>++@
=78
=N
)Anda dapat menguji Brainfuck di sini: http://copy.sh/brainfuck/
sumber
Kubik ( TIO ) / BF ( TIO )
(Diperbarui 8/4/17 untuk memperhitungkan perubahan bahasa di Cubically)
Pada dasarnya ini hanya menggunakan banyak karakter dari program BF yang ada di program Cubically, kemudian menempelkan sisa program BF di akhir. Tidak ada pemutusan paksa dengan
&
/E
dalam program Cubically diperlukan.sumber
Python / BrainF ** k, 362 karakter
BrainF ** k kode diambil dari jawaban Clément Renaud yang dihapus.
Sunting - Karakter nol awal tidak lagi dicetak.
Menggunakan trik yang sangat sederhana -
|
karakter ditambahkan ke program BF, dan jarak di antara mereka menyandikan string yang dicetak dengan Python. Kode Python sebagian besar diabaikan oleh BF.sumber
.join
menambahkan.
, tetapi tidak melihat salahnya (karena\0
tidak terlihat). Is+
dan.split
OK - saya menghapus karakter dari aslinya.