bounties
नंबर 1 ( सम्मानित )
मैं पहले वैध जवाब के लिए 50 प्रतिनिधि में फेंक दूंगा
नंबर 2 ( सम्मानित )
मैं सबसे कम वैध जवाब के लिए एक और 100 प्रतिनिधि में फेंक दूंगा।
नंबर 3 ( प्रस्तुतियाँ के लिए खुला )
मैं एक महत्वपूर्ण छोटे वैध जवाब के साथ पहले एक के लिए 200 प्रतिनिधि में फेंक दूंगा। वर्तमान में सबसे कम उत्तर में 45% ( 564 बाइट्स x 0.45 = अधिकतम 254 बाइट्स ) महत्वपूर्ण है।
खेल
आपको क्लासिक खेल " नौ पुरुषों की मॉरिस " या बस " मिल " याद है? थ्री मेन्स मॉरिस नाम की भिन्नता है जो एक उत्परिवर्ती टिक-टैक-टो की तरह थोड़ी है।
नियम
यह खेल का खाली बोर्ड है:
a b c
1 [ ]–[ ]–[ ]
| \ | / |
2 [ ]–[ ]–[ ]
| / | \ |
3 [ ]–[ ]–[ ]
[ ]
एक क्षेत्र है और |–/\
उन क्षेत्रों के बीच मार्गों का प्रतिनिधित्व करता है।
खेल दो खिलाड़ियों द्वारा खेला जाता है 1
और 2
जो बोर्ड पर प्रत्येक जगह 3 टोकन रखते हैं। यह वास्तव में पहले से ही हुआ है और हम खेल में हैं। यदि एक खिलाड़ी mill
खिलाड़ी के 3 टोकन की एक ऊर्ध्वाधर या क्षैतिज पंक्ति बना सकता है, तो यह गेम जीता जाता है।
टोकन को इस नियम के अनुसार, कनेक्टिंग लाइनों के साथ बोर्ड पर ले जाया जा सकता है:
किसी भी आसन्न खाली स्थिति के लिए (यानी एक किनारे की स्थिति से केंद्र के लिए, या केंद्र से एक किनारे की स्थिति के लिए, या एक किनारे की स्थिति से एक आसन्न किनारे की स्थिति के लिए)
एक खिलाड़ी को एक चाल चलनी चाहिए जब तक कि कोई आसन्न खाली स्थिति न हो, जिस स्थिति में यह कदम छोड़ दिया जाता है।
चुनौती
आप खिलाड़ी हैं 1
और आपकी चाल अगली है। एक कार्यक्रम या एक समारोह लिखें, जो निर्धारित करता है:
- आप 2 या उससे कम चालों ( निश्चित जीत ) के साथ एक जीत को मजबूर कर सकते हैं
- यदि आपका प्रतिद्वंद्वी गलती करता है ( संभावित जीत ) , तो आप 2 या उससे कम चालों से जीत सकते हैं
- आप 2 या उससे कम चालों से नहीं जीत सकते, क्योंकि आपको अधिक चालों की आवश्यकता होगी या क्योंकि मजबूर चालों से आपके प्रतिद्वंद्वी को जीत हासिल होगी ( जीतने के लिए असंभव )
आवश्यकताएँ
- भले ही आप निश्चित रूप से जीत जाते हैं जब आप अपने प्रतिद्वंद्वी को मौत के घाट उतार देते हैं, तो आपका कार्यक्रम निश्चित समय पर समाप्त होना चाहिए।
- आप एक कार्यक्रम या एक समारोह लिख सकते हैं।
इनपुट
खिलाड़ियों द्वारा प्रतिनिधित्व किया जाता है 1
और 2
। 0
एक मुक्त क्षेत्र को परिभाषित करता है। आप एक मैट्रिक्स या एक सरणी के रूप में इनपुट ले सकते हैं।
निश्चित
A B C D
2 1 0 | 2 1 0 | 1 0 1 | 1 2 2
2 1 2 | 0 1 0 | 1 0 2 | 2 1 O
0 0 1 | 2 2 1 | 0 2 2 | O O 1
A: [2,1,0,2,1,2,0,0,1]
B: [2,1,0,0,1,0,2,2,1]
C: [1,0,1,1,0,2,0,2,2]
D: [1,2,2,2,1,0,0,0,1]
मुमकिन
A B C
1 0 1 | 1 0 1 | 1 2 2
1 2 2 | 1 2 0 | 0 0 1
2 0 0 | 2 0 2 | 2 1 0
A: [1,0,1,1,2,2,2,0,0]
B: [1,0,1,1,2,0,2,0,2]
C: [1,2,2,0,0,1,2,1,0]
असंभव
A B
1 0 0 | 1 2 0
1 2 2 | 2 1 0
2 0 1 | 1 2 0
A: [1,0,0,1,2,2,2,0,1]
B: [1,2,0,2,1,0,1,2,0]
उत्पादन
आपके प्रोग्राम को एक स्माइली आउटपुट / वापस करना चाहिए:
- निश्चित जीत:
:)
- संभावित जीत:
:|
- जीतने के लिए असंभव:
:(
उदाहरण
दो चालों में निश्चित जीत:
[2][1][ ] 1. [2][1][ ]
[2][1][2] -> [2][1][2]
[ ][ ][1] [ ][1][ ]
[2][1][ ] 1. [2][1][ ] [ ][1][ ] 2. [ ][ ][1]
[ ][1][ ] -> [ ][ ][1] -> [2][ ][1] -> [2][ ][1]
[2][2][1] [2][2][1] [2][2][1] [2][2][1]
[1][ ][1] 1. [ ][1][1] [ ][1][1] 2. [1][1][1]
[1][ ][2] -> [1][ ][2] -> [1][ ][2] -> [ ][ ][2]
[ ][2][2] [ ][2][2] [2][ ][2] [2][ ][2]
दो चालों में संभावित जीत:
[1][ ][1] 1. [ ][1][1] [ ][1][1] 2. [1][1][1]
[1][2][ ] -> [1][2][ ] -> [1][2][2] -> [ ][2][2]
[2][ ][2] [2][ ][2] [2][ ][ ] [2][ ][ ]
[1][ ][1] 1. [ ][1][1] [ ][1][1] 2. [1][1][1]
[1][2][ ] -> [1][2][ ] -> [1][2][2] -> [ ][2][2]
[2][ ][2] [2][ ][2] [2][ ][ ] [2][ ][ ]
[1][2][2] 1. [ ][2][2] [2][ ][2] 2. [1][2][2]
[ ][ ][1] -> [1][ ][1] -> [1][ ][1] -> [1][1][1]
[2][1][ ] [2][1][ ] [2][1][ ] [2][ ][ ]
दो चालों में जीतना असंभव:
[1][ ][ ]
[1][2][2]
[2][ ][1]
बक्शीश
यदि एक निश्चित जीत संभव है और आपका कार्यक्रम सफलता के लिए एक तरह से a1:a2
(1 चाल) या a1:a2,a3:b2
(2 चाल) की चाल को आउटपुट करता है , तो आप अपनी बाइट की गिनती का 30% निकाल सकते हैं ।
यह कोड गोल्फ है - बाइट्स जीत में इतना कम जवाब। मानक खामियों को अस्वीकार कर दिया जाता है।
पीटर टेलर का धन्यवाद जिन्होंने सैंडबॉक्स में कुछ खामियों और सुधार को बेहतर बनाया ।
[1,0,0,2,1,0,2,2,1]
, खिलाड़ी 2 नहीं चल सकता - क्या यह खिलाड़ी 1 के लिए जीत है?