आइए एक साधारण 2 डी भाषा को परिभाषित करें, जिसे हम अविश्वसनीय रूप से मूल नाम देंगे । Befinge में 5 निर्देश हैं:
<>^v
, जैसा कि अधिकांश 2D एसोलैंग्स में, निर्देश सूचक को उनके संबंधित दिशाओं में पुनर्निर्देशित करता है।.
एक सेशन नहीं है
निर्देश पॉइंटर ऊपर-बाएँ कोने से दाएं तरफ शुरू होता है। यदि निर्देश सूचक एक किनारे पर जाता है, तो प्रोग्राम रुक जाता है। प्रत्येक Befinge कार्यक्रम स्पष्ट रूप से या तो रुक जाएगा या एक अनंत लूप में जाएगा जो कुछ भी नहीं करता है। यहाँ दो उदाहरण हैं:
हॉल्टिंग:
>.v
..<
गैर-लंगड़ा:
>....v
..v..<
..>v..
^..<..
ट्यूरिंग-पूर्ण भाषा के लिए रुकने की समस्या हल नहीं है, लेकिन यह इस के लिए है। आपका काम एक कार्यक्रम (या समारोह) है कि एक स्ट्रिंग का प्रतिनिधित्व इनपुट के रूप में लेता है लिखना है befinge कार्यक्रम और एक truthy या falsey मान देता है कि क्या यह हाल्ट या नहीं पर निर्भर करता है।
- आप मान सकते हैं कि इनपुट में केवल ये अक्षर होंगे और आयत बनाने के लिए रिक्त स्थान होंगे।
- आप निर्देशों के लिए पांच वर्णों के किसी भी सेट का उपयोग कर सकते हैं (जैसे
adws
)।
परीक्षण के मामलों
हॉल्टिंग:
.
v>
>^
....v....
....>...v
.^..<....
.......v<
.......v.
....^..<.
v<>v>v^
>v^>^>v
<>>^v<v
v^<>v^<
गैर-लंगड़ा:
>..v
^..<
>v<
v<.
>v.
v<.
>.^
>.>.>.v
.><.<.<
यह कोड-गोल्फ है , इसलिए सबसे छोटा कार्यक्रम (बाइट्स में) जीतता है।
>..>.
या ><
।