Mari kita mendefinisikan sederhana bahasa 2D, yang kami akan memberikan nama sangat asli befinge . Befinge memiliki 5 instruksi:
<>^v
, seperti pada kebanyakan esolangs 2D, arahkan pointer instruksi ke arah masing-masing..
adalah no-op.
Penunjuk instruksi dimulai di sudut kiri atas ke kanan. Jika penunjuk instruksi mencapai keunggulan, program berhenti. Setiap program Befinge jelas akan berhenti atau masuk ke loop tak terbatas yang tidak melakukan apa-apa. Berikut ini dua contoh:
Berhenti:
>.v
..<
Non-Berhenti:
>....v
..v..<
..>v..
^..<..
Masalah penghentian tidak bisa dipecahkan untuk bahasa Turing-lengkap, tetapi untuk yang ini. Tugas Anda adalah menulis sebuah program (atau fungsi) yang mengambil input string yang mewakili program befinge dan mengembalikan nilai true atau falsey tergantung pada apakah itu berhenti atau tidak.
- Anda dapat mengasumsikan bahwa input hanya akan terdiri dari karakter-karakter ini dan akan diisi dengan spasi untuk membentuk persegi panjang.
- Anda dapat menggunakan seperangkat lima karakter untuk instruksi (misalnya
adws
).
Uji Kasus
Berhenti:
.
v>
>^
....v....
....>...v
.^..<....
.......v<
.......v.
....^..<.
v<>v>v^
>v^>^>v
<>>^v<v
v^<>v^<
Non-Berhenti:
>..v
^..<
>v<
v<.
>v.
v<.
>.^
>.>.>.v
.><.<.<
Ini adalah kode-golf , jadi program terpendek (dalam byte) menang.
>..>.
atau 90 derajat ><
.