2010-08-06 6 views
7

में लागू नियंत्रण संरचनाएं uninitiated, Brainfuck के लिए केवल 8 आदेशों, जो सभी के सी में शाब्दिक समकक्ष है के साथ एक ट्यूरिंग-पूर्ण भाषा है आपको पैकेज beef, एक ब्रेनफक दुभाषिया खोजने और स्थापित करने में सक्षम होना चाहिए ताकि आप घर पर खेल सकें।Brainfuck

आप ऊपर देख सकते हैं, Brainfuck है, लेकिन एक नियंत्रण संरचना, […] जो के रूप में सी के लिए अनुवाद:

while (*ptr) { … } 

जो तुम IF VAR = 0 THEN GOTO 10 बेसिक से के सभी नियंत्रण देता है। जब तक यह रिटर्न 0 निम्नलिखित getchar() कॉल करेगा:

, # *ptr = getchar(); 
[ # while (*ptr) { 
    >, # *(++ptr) = getchar(); 
] # } 

लेकिन क्या होगा अगर मैं केवल एक नई पंक्ति चार \n को पढ़ना चाहते हैं?

,   # *ptr = getchar();  /* store input        */ 
---------- # *ptr -= 10;   /* test for \n by subtracting 10 before loop */ 
[   # while (*ptr) {   /* if *ptr == 0, last char read was \n  */ 
    ++++++++++ # *ptr += 10;   /* wasn't \n, add 10 back to val under ptr */ 
    >,   # *(++ptr) = getchar(); 
    ---------- # *ptr -= 10; 
]   # } 

(किसी को भी ऐसा करने का एक बेहतर तरीका है, तो कृपया मुझे बताएं)

: चारों ओर यह कैसे एक सरल if के रूप में काम करने के लिए अनुकूलित किया जा सकता मेरे मस्तिष्क लपेटकर कुछ असुविधा हो रही करने के बाद मैं निम्नलिखित के साथ आया था

अब कहें कि \n के अतिरिक्त \r पर उस लूप से ब्रेक का परीक्षण करना चाहता हूं। मैं या तो परीक्षण कैसे कर सकता हूं, यह देखते हुए कि मेरे पास केवल लूप से बाहर निकलने का एक मौका है? मेरा लक्ष्य switch, नेस्टेड if एस या if/else if एस अनुकरण करने में सक्षम होना है।

+1

इस तरह के एक मस्तिष्क मृत भाषा के बारे में _no_ गंभीर सवाल ही पैदा नहीं हो सकता है कर रहे हैं। वास्तव में, यह है कि यह _should_ कहा जाता है: Braindead :-) – paxdiablo

+4

आप महोदय, एक बहादुर आदमी हैं। – Pierreten

+1

@SCMadsen यहां "हैलो वर्ल्ड" है: '++++++++++ [> +++++++> ++++++++++++++ + <<<<-]> ++। > +। +++++++ .. +++।> ++। << +++++++++++++++।>। +++ .------ .--------।> +।>। – NullUserException

उत्तर

3

मैंने अभी तक लिंक पर एक नज़र डाली नहीं है, लेकिन मुझे लगता है कि AShelly's answer शायद अधिक सार्वभौमिक रूप से उपयोगी है ... हालांकि, मेरी अंगुलियों को पहले कुछ ब्रेनफक टाइप करने की हिम्मत नहीं हुई, मैंने फैसला किया कि अब किसी भी समय के लिए अच्छा है और निम्नलिखित प्राप्त करने में सक्षम था, जो मैं सोचता हूं काम करता है।

दूसरा आधा केवल पहले भाग द्वारा कब्जा कर लिया गया था प्रिंटिंग के लिए है। इसके अलावा, मैं झूठ नहीं बोलूंगा, मेरा दिमाग वास्तव में इसे काम करने की कोशिश करने के बाद पूरी तरह से "गड़बड़" महसूस करता है ... एक बहुत ही उपयुक्त नाम, हे।

+ 
[ 
    >, 
    ---------- 
    [ 
     --- 
     [ 
      +++++++++++++ 
      >> 
     ] 
    ] 

    < 
    [ 
     >> 
    ] 
    < 
] 

++++++++++++ 
[ 
    < 
] 

> 
[ 
    .> 
] 
+0

उदाहरण के लिए धन्यवाद! –

3

एकल बीएफ नियंत्रण संरचना के साथ शुरू करने के तरीके के विवरण के लिए this page देखें और अधिक परिष्कृत परिचालनों का प्रतिनिधित्व करने वाले जटिल जटिल अनुक्रमों की एक श्रृंखला को परिभाषित करें।

4

Here मस्तिष्क एफ * सी.के. के लिए बुनियादी तार्किक लेकिन जटिल ऑपरेशन करने के लिए एल्गोरिदम :)