मैं यहाँ कोड गोल्फ का एक नया रूप आज़माना चाहता हूँ। बोनस के समान, चुनौती के सभी हिस्सों को पूरा नहीं करना है, लेकिन प्रत्येक उत्तर को निश्चित आकार के एक सबसेट को लागू करना है (और एक कोर है जिसे हर उत्तर को लागू करना है)। इसलिए गोल्फिंग के अलावा इस चुनौती में उन सुविधाओं का एक सेट चुनना भी शामिल है जो एक साथ अच्छी तरह से चलते हैं।
नियम
किंगडम बिल्डर एक बोर्ड गेम है, जो एक (नुकीला-शीर्ष) हेक्स ग्रिड पर खेला जाता है। बोर्ड चार (रैंडमाइज्ड) क्वाड्रंट्स से बना है, जिनमें से प्रत्येक में 10x10 हेक्स सेल हैं (इसलिए एक पूर्ण बोर्ड 20x20 होगा)। इस चुनौती के प्रयोजनों के लिए, प्रत्येक हेक्स सेल में या तो पानी ( W
), पहाड़ ( M
) एक शहर ( T
), एक महल ( C
) या खाली है ( .
) है। तो एक चतुर्भुज जैसा दिख सकता था
. . W . . . . . . .
. M W W . . . . . .
. M . . W . . . T .
M M . W . . . . . .
. . M . W W . . . .
. . . . . W W W W W
. T . . . . . . . .
. . W . . C . . . .
. . W W . . . . M .
. . . . . . . M M .
दूसरी पंक्ति हमेशा पहली पंक्ति से दाईं ओर ऑफसेट होगी। खिलाड़ी खाली कोशिकाओं पर प्रत्येक में 40 बस्तियों को जगह 1
दे 4
सकते हैं (कुछ नियमों का पालन करते हैं जिन्हें हम इस चुनौती के लिए अनदेखा करेंगे)। खेल के अंत में एक संभावित बोर्ड निम्नलिखित है:
3 3 W . . . 4 . 4 . . 2 W . 4 . . 4 . 4
3 M W W . 1 1 . . 4 2 W . 3 C 4 4 . . 4
3 M 2 2 W 1 1 1 T 3 2 W 4 3 . 1 4 . 4 .
M M . W 2 2 . . . 2 2 W 3 . 1 1 1 . . .
. 4 M . W W 2 2 2 2 W W 3 . 1 4 . T . .
. . . . . W W W W W . 3 C 1 . . 2 2 2 2
. T 1 1 1 1 . . 2 . . 4 . . . 2 2 M M M
4 . W 4 . C 4 4 . . . . . . 2 M M M M M
. 4 W W . . . 4 M . . W . W . 2 2 2 M M
. . . . . . . M M . . W W . . . . 2 M .
. . . 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 . 1
M 3 3 . . . . . . . . 4 . T 2 . 2 4 1 .
M M . C . 4 . 4 . . . . . 1 2 4 2 1 1 .
M . . 1 . 4 . . . . M M 1 2 . . 2 1 . .
. . . W 1 1 4 1 1 . . . 1 2 . . 2 W W W
. . 1 1 W 1 T . 1 1 1 1 T . . 2 W . 4 .
. 1 1 W . 3 3 . . . . . . . . 2 W 4 C 3
C 1 3 3 3 . 3 . 4 . 4 . 4 . . 2 W 1 1 M
4 3 3 4 . M 4 3 . . . . . . . 2 W . . .
. . . 4 . M M 3 . . 4 4 . 4 . 2 W W . .
हम चतुर्भुज की तरह लेबल करेंगे
1 2
3 4
आपका काम इस तरह के बोर्ड को बनाना होगा। एक कोर स्कोर है जो हमेशा उपयोग किया जाता है, और 8 वैकल्पिक स्कोर, जिनमें से 3 प्रत्येक गेम के लिए चुने जाते हैं। † निम्नलिखित में, मैं सभी 9 स्कोर का वर्णन और कितने अंक प्रत्येक खिलाड़ी मिलेगा के लिए एक उदाहरण के रूप में ऊपर सेटअप का उपयोग करेंगे।
, वास्तविक गेम में 10 स्कोर हैं, लेकिन मैं दो को छोड़ दूंगा क्योंकि कोई भी उन्हें गोल्फ नहीं देना चाहता।
कोर स्कोर। एक खिलाड़ी को प्रत्येक अंक के लिए 3 अंकC
मिलते हैं, जिसके पास उनका निपटान होता है। उदाहरण स्कोर: 18, 0, 15, 12।
वैकल्पिक स्कोर।
एक खिलाड़ी को प्रत्येक क्षैतिज पंक्ति के लिए 1 अंक मिलता है, जिस पर उनके पास कम से कम एक निपटान होता है।
उदाहरण स्कोर: 14, 20, 12, 16।
प्रत्येक खिलाड़ी के लिए, क्षैतिज पंक्ति खोजें, जिस पर वे अपनी अधिकांश बस्तियों (टाई के मामले में कोई भी उठाएं)। एक खिलाड़ी को उस पंक्ति पर प्रत्येक निपटान के लिए 2 अंक मिलते हैं ।
उदाहरण स्कोर: 14 (पंक्ति 16), 8 (पंक्ति 4, 5 या 6), 28 (पंक्ति 11), 10 (पंक्ति 1)।
एक खिलाड़ी को प्रत्येक सेटलमेंट के लिए 1 अंक मिलता है जो कि
W
एटर के बगल में बनता है।उदाहरण स्कोर: 13, 21, 10, 5।
एक खिलाड़ी को एक बस्ती के बगल में प्रत्येक बस्ती के लिए 1 अंक
M
मिलता है।उदाहरण स्कोर: 4, 12, 8, 4।
प्रत्येक चतुर्थांश में प्रत्येक खिलाड़ी की बस्तियों की गणना करें। प्रति व्यक्ति, बस्तियों की सबसे बड़ी संख्या वाले खिलाड़ियों को 12 अंक प्राप्त होते हैं, दूसरी सबसे बड़ी बस्तियों वाले खिलाड़ियों को प्रत्येक अंक मिलते हैं।
उदाहरण स्कोर: 18 (6 + 0 + 6 + 6), 36 (12 + 12 + 0 + 12), 12 (0 + 0 + 12 + 0), 18 (12 + 6 + 0 + 0)।
प्रत्येक खिलाड़ी के लिए यह निर्धारित किया जाता है कि उनके पास कम से कम बस्तियों की संख्या है। एक खिलाड़ी को उस चतुर्थांश में प्रत्येक निपटान के लिए 3 अंक मिलते हैं ।
उदाहरण स्कोर: 18 (चतुर्थांश 2), 0 (चतुर्थांश 3), 15 (चतुर्थांश 1 या 2), 27 (चतुर्थांश 3)।
एक खिलाड़ी को बस्तियों के प्रत्येक जुड़े समूह के लिए 1 अंक मिलता है ।
उदाहरण स्कोर: 7, 5, 6, 29।
खिलाड़ी को कनेक्टेड बस्तियों के सबसे बड़े समूह के प्रत्येक 2 बस्तियों के लिए 1 अंक मिलता है ।
उदाहरण स्कोर: 4, 10, 8, 2।
चुनौती
खेल में जैसा कि आप वैकल्पिक स्कोर में से 3 का चयन करेंगे , और दिए गए बोर्ड को कोर स्कोर और उन तीन स्कोर के आधार पर स्कोर करेंगे। आपके कोड को 4 अंकों की सूची तैयार करनी चाहिए। पसंद पर एक प्रतिबंध है, हालांकि: मैंने स्कोर को 3 समूहों में बांटा है, और आप प्रत्येक समूह में से एक को लागू करने के लिए हैं:
- 1 और 2 में से किसी एक को लागू करें ।
- 3, 4, 5 और 6 में से एक को लागू करें ।
- 7 और 8 में से एक को लागू करें ।
आप STDIN, कमांड-लाइन तर्क, प्रॉम्प्ट या फ़ंक्शन पैरामीटर के माध्यम से इनपुट लेते हुए एक प्रोग्राम या फ़ंक्शन लिख सकते हैं। आप परिणाम वापस कर सकते हैं या इसे STDOUT में प्रिंट कर सकते हैं।
आप इनपुट के लिए कोई भी सुविधाजनक 1 डी या 2 डी सूची / स्ट्रिंग प्रारूप चुन सकते हैं। आप पूरी आसन्न जानकारी के साथ एक ग्राफ का उपयोग नहीं कर सकते हैं। यहाँ हेक्स ग्रिड पर कुछ अच्छा पढ़ना है अगर आपको प्रेरणा की आवश्यकता है।
आपका आउटपुट किसी भी सुविधाजनक, अस्पष्ट सूची या स्ट्रिंग प्रारूप में भी हो सकता है।
यह कोड गोल्फ है, इसलिए सबसे छोटा उत्तर (बाइट्स में) जीतता है।
इसके अलावा अनुमान
आप मान सकते हैं कि ...
- ... प्रत्येक खिलाड़ी में कम से कम 1 समझौता होता है और प्रत्येक खिलाड़ी की 40 से अधिक बस्तियां नहीं होती हैं।
- ... प्रत्येक चतुर्थांश में एक शहर और दो महल होते हैं, या दो शहर और एक महल होते हैं।
- ... कस्बों और महल बहुत दूर हैं, जैसे कि कोई भी बस्ती उनमें से दो से सटे नहीं हो सकती।
परीक्षण के मामलों
अभी भी उपरोक्त बोर्ड का उपयोग करते हुए, स्कोरिंग तंत्र के सभी संभावित विकल्पों के लिए यहां व्यक्तिगत स्कोर हैं:
Chosen Scores Total Player Scores
1 3 7 52 46 43 62
1 3 8 49 51 45 35
1 4 7 43 37 41 61
1 4 8 40 42 43 34
1 5 7 57 61 45 75
1 5 8 54 66 47 48
1 6 7 57 25 48 84
1 6 8 54 30 50 57
2 3 7 52 34 59 56
2 3 8 49 39 61 29
2 4 7 43 25 57 55
2 4 8 40 30 59 28
2 5 7 57 49 61 69
2 5 8 54 54 63 42
2 6 7 57 13 64 78
2 6 8 54 18 66 51