ऐतिहासिक पृष्ठभूमि
ढाल की दीवार एक सामरिक युद्ध गठन है जो कम से कम 2500 ईसा पूर्व की है। इसमें योद्धाओं का समावेश था, जिन्होंने अपने साथियों के साथ मिलकर एक 'दीवार' बनाई। रणनीति की अपील इस तथ्य से आती है कि सबसे अकुशल योद्धा भी एक दीवार में लड़ सकता था जब तक उनके पास एक ढाल और एक हथियार था। दीवारों की निकटता के कारण, चारों ओर घूमने के लिए बहुत कम जगह थी, और लड़ाई आमतौर पर तेज हथियारों के साथ लड़ा जाने वाला एक शेवरिंग मैच बन गया।
चुनौती
आपका काम एक प्रोग्राम या फ़ंक्शन बनाना है, जो इनपुट के रूप में योद्धाओं के दो सरणियों / सूचियों / वैक्टर को देता है, लड़ाई के परिणाम को तय करता है। सूचियाँ शील्ड्स की एकल-पंक्ति दीवार का प्रतिनिधित्व करेंगी, और वे एक विशिष्ट संकेतन का पालन करेंगी:
वाइकिंग्स:
नॉर्डिक योद्धाओं के पास युद्ध के लिए एक भयंकर अभियान था। 11 वीं शताब्दी के उत्तरार्ध में 8 वीं शताब्दी के अंत के दौरान, डेनिश वाइकिंग्स ने धन और कृषि योग्य भूमि की तलाश में ब्रिटेन के राज्यों पर आक्रमण किया। इस चुनौती के उद्देश्य के लिए, ये वाइकिंग्स योद्धा हैं:
JARL: आमतौर पर दीवार के केंद्र से उसके आदमियों अग्रणी पाया, jarls वाइकिंग भीड़ के नेता थे। मरने के लिए 15 क्षति लेता है, और प्रति चक्कर में 2 क्षति का सामना करता है।BErserker: हालांकि कल्पना बहुत Berserkers की छवि मुड़ गया है, इन योद्धाओं उनकी ढाल के अलावा अन्य सुरक्षा के किसी भी प्रकार के बिना एक रोष ट्रान्स की तरह में लड़ने के लिए जाने जाते थे। मरने के लिए 6 नुकसान उठाता है, और प्रति चक्कर 3 क्षति का सौदा करता है।CHieftain: सरदारों अमीर पुरुषों के लिए जो उनकी सेवा पर मुफ्त पुरुषों थे। वे आम तौर पर युद्ध में महान महिमा और धन अर्जित करते थे। मरने के लिए 10 क्षति लेता है, और प्रति चक्कर में 2 क्षति का सामना करता है।- फ्री
Mएन: योद्धाओं ने एक सरदार की सेवा की। उन्हें मरते दम तक अपने प्रभु के लिए लड़ने की शपथ दिलाई गई। मरने के लिए 8 क्षति लेता है, और प्रति चक्कर 1 क्षति का सौदा करता है। SKald: Skalds, आमतौर पर bards के रूप में अनुवाद, मुक्त पुरुषों के लिए जो कविताएं, नॉर्डिक योद्धाओं के महान कामों के बारे में कहानियों या गाने लिखने के लिए काम पर रखा गया था। मरने के लिए 8 नुकसान उठाता है, और प्रत्येक आसन्न योद्धा को 1 बोनस क्षति देता है। Skalds कोई नुकसान नहीं पहुंचाते। योद्धा इस तरह से 1 से अधिक बोनस नुकसान नहीं उठा सकते हैं ।
सक्सोंस:
5 वीं शताब्दी में रोमन साम्राज्य के निधन के बाद सक्सोन महाद्वीपीय यूरोप से ब्रिटेन में आकर बस गए। इस चुनौती के प्रयोजनों के लिए, सैक्सन के योद्धा हैं:
EARL: Ealdormen , आमतौर पर अर्ल्स कहा जाता है, उच्च बड़प्पन के सदस्य थे। वे आम तौर पर जमीन के बड़े हिस्से रखते थे और सैकड़ों या हजारों शपथ खाते थे। मरने के लिए 20 क्षति लेता है, और प्रति चक्कर 1 क्षति का सौदा करता है।Kरात: एक बेहतर शब्द की कमी के लिए, शूरवीर नाबालिग कुलीन जो कुछ भूमि के स्वामित्व वाले थे। ज्यादातर मामलों में, शूरवीरों ने एक अर्ल को नौकरों की शपथ दिलाई थी। मरने के लिए 10 क्षति लेता है, और प्रति चक्कर में 2 क्षति का सामना करता है।- द
Wएरियर: आम आदमी, आम तौर पर बिना भूमि के मामूली रईस या शूरवीर की सेवा करने वाले किसान। जब एक नाइट या अर्ल से सटे, योद्धाओं को +1 नुकसान बोनस होता है। मरने के लिए 8 क्षति लेता है, और प्रति चक्कर में 2 क्षति का सामना करता है। FYrd: Fyrd था एक मिलिशिया की तरह स्वतंत्र लोगों, आम तौर पर गरीब किसानों, जो किसी भी हथियार (या लागू खेती हथियार की तरह) वे दीवार में लड़ने के लिए किया था लाने चाहते हैं का समूह। मरने के लिए 5 क्षति लेता है, और प्रति चक्कर 1 क्षति का सौदा करता है।- द
Pरिस्ट: भगवान के शब्दों के हेराल्ड होने के कारण प्रारंभिक सैक्सन संस्कृति में पुजारी अत्यधिक मूल्यवान थे। पुजारी मरने के लिए 15 क्षति उठाते हैं, और 1 क्षति को रोकते हैं जिससे प्रत्येक निकटवर्ती योद्धा को निपटाया जा सके। पुजारी कोई नुकसान नहीं पहुंचाते। पुजारी एक योद्धा को 1 से अधिक क्षति नहीं रोक सकते ।
दिवार
दीवारें अपने केंद्रों पर एक दूसरे से मिलती हैं। प्रत्येक राउंड, प्रत्येक योद्धा सीधे उसके सामने योद्धा को नुकसान पहुंचाता है या, अगर उसके सामने कोई जीवित योद्धा नहीं है, तो तिरछे बगल में रहने वाले योद्धा कम से कम स्वास्थ्य शेष हैं। यदि कोई टाई है, तो योद्धा को दीवार के किनारे के करीब चुनें।
उदाहरण:
Vikings
[M,M,M,B,B,C,J,C,B,B,M,M,M]
[F,F,F,W,W,K,E,K,W,W,F,F,F]
Saxons
To make matters easier, let's convert these walls into numbers:
Round 0:
M M M B B C J C B B M M M
[8,8,8,6,6,10,15,10,6,6,8,8,8]
[5,5,5,8,8,10,20,10,8,8,5,5,5]
F F F W W K E K W W F F F
Round 1: Notice that 2 of the Saxons' warriors are adjacent to Knights, so they have a +1 damage bonus.
M M M B B C J C B B M M M
[7,7,7,4,3,8,14,8,3,4,7,7,7]
| | | | | | || | | | | | |
[4,4,4,5,5,8,18,8,5,5,4,4,4]
F F F W W K E K W W F F F
Round 2:
M M M B B C J C B B M M M
[6,6,6,2,0,6,13,6,0,2,6,6,6]
| | | | | | || | | | | | |
[3,3,3,2,2,6,16,6,2,2,3,3,3]
F F F W W K E K W W F F F
Round 3: Remember to collapse the arrays to account for dead warriors. Also, notice that the 2 outermost Fyrd are now attacking the diagonally adjacent viking.
M M M B C J C B M M M
[4,5,4,0,4,12,4,0,4,5,4]
/| | | | | || | | | | |\
[2,2,2,1,0,4,14,4,0,1,2,2,2]
F F F W W K E K W W F F F
Round 4: Notice once again the saxon Warriors next to the Knights dealing 3 damage:
M M M C J C M M M
[2,4,1,2,11,2,1,4,2]
/| | | | || | | | |\
[2,1,1,0,2,12,2,0,1,1,2]
F F F W K E K W F F F
Round 5:
M M M C J C M M M
[1,3,0,0,10,0,0,3,1]
| | | | || | | | |
[1,0,0,0,10,0,0,0,1]
F F F K E K F F F
Round 6:
M M J M M
[1,2,9,2,1]
\| | |/
[0,8,0]
F E F
Rounds 7 and 8:
M M J M M M M J M M
[1,2,8,2,1] [1,2,8,2,1]
\|/ \|/
[4] [0]
E E
Output: Viking victory.
नियम:
- डिफ़ॉल्ट ढीले लागू होते हैं।
- आप किसी भी सुविधाजनक IO विधि का उपयोग कर सकते हैं ।
- यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड (बाइट्स में, प्रति भाषा) जीतता है।
- आप यह नहीं मान सकते हैं कि सूचियों की लंबाई समान होगी, लेकिन वे हमेशा अपने केंद्रों में संरेखित होंगी (यदि सूची अलग-अलग आकार की होगी तो प्रत्येक सूची में एक विषम संख्या में योद्धा होंगे)।
- आप किसी भी सच्चाई / गलत मूल्य का उत्पादन कर सकते हैं। कृपया अपने उत्तर में "वाइकिंग / सैक्सन विजय" के समकक्षों को निर्दिष्ट करें ।
- हारने वाला तब निर्धारित किया जाता है जब एक दीवार के सभी योद्धा मर जाते हैं।
यदि आप कभी भी दीवारों के साथ समाप्त होते हैं जो कोड निष्पादन के दौरान संरेखित नहीं होते हैं, तो उन्हें केंद्र में संभव के रूप में संरेखित करें, जिससे दीवार पर एक अतिरिक्त योद्धा को दाईं ओर छोड़ दिया जा सके। उदाहरण के लिए:
[M,M,M,J,M,M,M] [K,E,K,W]; [B,B,B,J] [K,K,W,W,K,E,K,W,W,K,K]दीवारों के किसी भी सेटअप के साथ अपने कोड की कोशिश करने और परीक्षण करने के लिए स्वतंत्र महसूस करें, न कि केवल परीक्षण मामलों में।
परीक्षण के मामलों:
V: [M,M,B,C,B,C,J,C,B,C,B,M,M]
S: [F,F,W,K,W,K,E,K,W,K,W,F,F]
O: Viking victory.
------------------------------
V: [M,M,M,M,M,M,M,M,M,M]
S: [W,W,W,W,W,W,W,W,W,W]
O: Saxon victory.
------------------------------
V: [B,C,M,B,C,M,M,C,B,M,C,B,M]
S: [W,F,W,F,E,E,E,F,W,F,W]
O: Viking victory.
------------------------------
V: [B,B,B,J,B,B,B]
S: [W,W,W,W,K,K,K,E,K,K,K,W,W,W,W]
O: Saxon victory.
------------------------------
V: [J]
S: [E]
O: Viking victory.
------------------------------
V: [C,C,C,C,B,B,M,M,M,M,J,J,J,M,M,M,M,B,B,C,C,C,C]
S: [K,K,K,K,K,K,K,K,K,K,W,E,W,K,K,K,K,K,K,K,K,K,K]
O: Saxon victory.
------------------------------
V: [M,M,S,C,B,J,B,C,S,M,M]
S: [F,K,P,W,K,E,K,W,P,K,F]
O: Saxon victory.
------------------------------
V: [S,S,S,...,S]
S: [P,P,P,...,P]
O: UNDEFINED (since both priests and skalds deal no damage, you can output anything here.)
------------------------------
कुछ ऐतिहासिक अशुद्धियाँ हैं। बेझिझक उन्हें इंगित करें और मैं उन्हें ठीक करने की पूरी कोशिश करूंगा।
(health, damage, damagebonus, protbonus))