ให้มีกำหนดที่เรียบง่ายภาษา 2D ซึ่งเราจะให้ชื่อเดิมอย่างไม่น่าเชื่อbefinge Befinge มี 5 คำแนะนำ:
<>^v
เช่นเดียวกับใน esolangs 2D ส่วนใหญ่ให้เปลี่ยนเส้นทางตัวชี้คำสั่งในทิศทางที่เกี่ยวข้อง.
เป็น no-op
ตัวชี้คำสั่งเริ่มต้นที่มุมบนซ้ายไปทางขวา หากตัวชี้คำแนะนำเข้าใกล้ขอบโปรแกรมจะหยุด ทุกโปรแกรมของ Befinge จะหยุดหรือเข้าสู่วงวนไม่สิ้นสุดซึ่งไม่ทำอะไรเลย นี่คือสองตัวอย่าง:
ลังเล:
>.v
..<
แบบไม่ลังเล:
>....v
..v..<
..>v..
^..<..
ปัญหาการหยุดชะงักไม่สามารถแก้ไขได้สำหรับภาษาทัวริงที่สมบูรณ์ แต่สำหรับภาษานี้ งานของคุณคือการเขียนโปรแกรม (หรือฟังก์ชั่น) ที่ใช้เป็นอินพุตสตริงที่แทนโปรแกรมbefingeและส่งกลับค่าความจริงหรือความเท็จขึ้นอยู่กับว่ามันจะหยุดหรือไม่
- คุณสามารถสันนิษฐานได้ว่าการป้อนข้อมูลจะประกอบด้วยตัวละครเหล่านี้เท่านั้นและจะถูกเติมด้วยช่องว่างเพื่อสร้างสี่เหลี่ยมผืนผ้า
- คุณสามารถใช้ชุดอักขระห้าตัวสำหรับคำแนะนำ (เช่น
adws
)
กรณีทดสอบ
ลังเล:
.
v>
>^
....v....
....>...v
.^..<....
.......v<
.......v.
....^..<.
v<>v>v^
>v^>^>v
<>>^v<v
v^<>v^<
แบบไม่ลังเล:
>..v
^..<
>v<
v<.
>v.
v<.
>.^
>.>.>.v
.><.<.<
นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุด (เป็นไบต์) จะชนะ
>..>.
><