पृष्ठभूमि
म्यू टॉरे एक ऐसा खेल है जो यूरोपीय प्रभाव से पहले न्यूजीलैंड के माओरी लोगों द्वारा खेले जाने वाले केवल दो में से एक है। यह इसे एक बहुत ही अनोखा खेल बनाता है कि इसमें "उद्देश्य जीतने की कसौटी" है और खेलने के नियम जो अस्तित्व के अधिकांश अन्य खेलों से अलग हैं।
गेमप्ले:
बोर्ड एक अष्टकोणीय है। प्रत्येक आसन्न शीर्ष के बीच संबंध हैं, और एक केंद्र नोड है जो सभी कोने से जुड़ा हुआ है। किसी भी समय, नौ में से आठ नोड्स पर पत्थरों का कब्जा होता है। प्रारंभ में, चार सफेद पत्थर और चार काले पत्थर हैं जो प्रत्येक अष्टकोण के आधे हिस्से को केंद्र नोड के साथ लेते हैं। काली पहले चलती है।
प्रत्येक मोड़ पर, एक खिलाड़ी अपने एक पत्थर को 16 किनारों में से एक नोड से एक खाली नोड में स्थानांतरित कर सकता है। एक पत्थर को केवल बाहरी नोड से केंद्र नोड में स्थानांतरित किया जा सकता है यदि पत्थर प्रतिद्वंद्वी के पत्थर के बगल में है।
एक खिलाड़ी तब हार जाता है जब वह एक कानूनी कदम उठाने में असमर्थ होता है, जो तब होता है जब कोई पत्थर खाली नोड को जोड़ने वाला कोई किनारे नहीं होता है।

यहां एक वेबसाइट है जो नियमों को समझाती है (एक आरेख के साथ) और कुछ विश्लेषण प्रदान करती है।
चुनौती
आपकी चुनौती सबसे छोटे कार्यक्रम को लिखना है जो एक मानव प्रतिद्वंद्वी के खिलाफ म्यू टोरे का सही खेल खेल सकता है। आपका कार्यक्रम गेम बोर्ड को प्रदर्शित करने और अद्यतन करने में सक्षम होना चाहिए, एक मानव प्रतिद्वंद्वी से चालें और चालें प्राप्त करना चाहिए। सबसे महत्वपूर्ण बात, यह एक आदर्श खेल खेलना चाहिए।
सही खेल?
हाँ, सही खेल। मैं कुछ खेल विश्लेषण कर रहा हूं, और मैंने पाया कि खेल अनंत समय तक रहता है यदि दोनों पक्षों द्वारा पूरी तरह से खेला जाता है। इसका मतलब है कि आपके कार्यक्रम को कभी नहीं खोना चाहिए। इसके अलावा, आपका कार्यक्रम जब भी मानव प्रतिद्वंद्वी एक गलती करने की अनुमति देता है, तो इस कार्यक्रम को जीत के लिए मजबूर करने में सक्षम होना चाहिए। जैसे ही आपका प्रोग्राम सही चाल पाता है, यह आपके ऊपर है।
विवरण
प्रत्येक चाल के बाद (और खेल की शुरुआत में), आपके कार्यक्रम को गेम बोर्ड को प्रिंट करना चाहिए। हालाँकि, आप बोर्ड को प्रदर्शित करना चुनते हैं, यह सभी नोड्स को दिखाना होगा और पूरी तरह से जुड़ा होना चाहिए (सभी 16 कनेक्शन लाइनें बिना किसी पार किए बिना खींची जानी चाहिए)। शुरुआत में, बोर्ड के पास सही शुरुआती स्थिति होनी चाहिए। इसे पूरा करने का एक तरीका गेम बोर्ड को चौकोर बनाना है।
w-w-w
|\|/|
b-o-w
|/|\|
b-b-b
दो रंग काले और सफेद, या गहरे / हल्के हैं। बोर्ड को यह दिखाना चाहिए कि कौन से खिलाड़ी के टुकड़ों पर कब्ज़ा है, जैसे "b" या "w" के साथ उन्हें चिह्नित करना और कौन सा नोड खाली है। प्रतिभागियों को प्रोत्साहित किया जाता है (लेकिन आवश्यक नहीं) खेल बोर्ड को सादे पाठ के बजाय अधिक चित्रमय बनाने के लिए।
आपके गेम बोर्ड में एक नंबरिंग सिस्टम होना चाहिए जो प्रत्येक नोड को एक अद्वितीय संख्या देता है। आप किसी भी तरह से बोर्ड को चुनना पसंद कर सकते हैं, लेकिन इसे आपके उत्तर में या कार्यक्रम द्वारा समझाया जाना चाहिए। वर्ग बोर्ड को निम्नानुसार गिना जा सकता है:
1-2-3
|\|/|
4-5-6
|/|\|
7-8-9
मानव सबसे पहले चलता है। उसका इनपुट सिंगल नंबर होगा। यह उस नोड की संख्या होगी जहां वर्तमान में स्थानांतरित पत्थर है। अगर मैं एक पत्थर को नोड 4 से खाली नोड 5 पर ले जाना चाहता हूं, तो मैं टाइप करूंगा 4। 5 निहित है क्योंकि यह केवल खाली नोड है।
मान लें कि मानव हमेशा एक कानूनी कदम उठाएगा।
मानव अपनी चाल चलने के बाद, एक अद्यतन बोर्ड मुद्रित किया जाना चाहिए। जब आपका कार्यक्रम एक कानूनी कदम पर निर्णय लेता है, तो उसे एक और अद्यतन बोर्ड प्रिंट करना चाहिए, और फिर मानव को एक और कदम दर्ज करने की प्रतीक्षा करनी चाहिए।
एक बार जीतने के बाद आपका कार्यक्रम समाप्त हो जाना चाहिए।
टिप्पणियाँ
मानक कोड गोल्फ नियम लागू होते हैं, बाहरी फ़ाइलों तक पहुंच नहीं होती है, आदि। इसके अलावा, मैं अपने प्रत्येक कार्यक्रम को बनाने के लिए आपके कार्यक्रम के लिए 15 सेकंड (एक उचित मशीन पर) की एक लचीली समय सीमा लागू करने जा रहा हूं। जैसा कि कहा गया है, इस खेल में अनंत लूप बनाने की संभावना है, और मैं एक अनंत लूप में मिल रही गहराई-पहली खोज नहीं चाहता हूं।