परिचय
रणनीति गेम स्टारक्राफ्ट 2 में, चुनने के लिए तीन "दौड़" हैं: टेरान, ज़र्ग, और प्रोटॉस। इस चुनौती में हम Protoss और प्रतिष्ठित वाक्यांश पर ध्यान केंद्रित करेंगे "आपको अतिरिक्त तोरण का निर्माण करना होगा!" यह संदेश तब कहा जाता है जब आप अपनी सेना बनाने के लिए आपूर्ति से बाहर भागते हैं। इसलिए, Starcraft समुदाय की मदद करने के लिए, आपको एक प्रोग्राम या फ़ंक्शन लिखना होगा जो खिलाड़ियों को बताता है कि उन्हें कितने पाइलों की आवश्यकता है।
चुनौती
आपको एक पूर्णांक N
और इकाइयों की अंतरिक्ष से अलग सूची वाली स्ट्रिंग का इनपुट दिया जाएगा । N
हमेशा शून्य या सकारात्मक होगा, और इकाइयों की सूची में हमेशा एक या अधिक मान्य इकाइयाँ होंगी। N
वर्तमान में खिलाड़ी के पास तोरण की मात्रा का प्रतिनिधित्व करता है। आपका काम यह गणना करना है कि खिलाड़ी के पास कितनी मात्रा में तोले हैं जो इकाइयों को बनाने के लिए पर्याप्त हैं। आपका कार्यक्रम या समारोह होगा उत्पादन / एक truthy मूल्य वापस अगर वहाँ पर्याप्त आपूर्ति है, या अगर वहाँ पर्याप्त आपूर्ति आप उत्पादन करना चाहिए नहीं है You must construct ZZZ additional pylons
जहां ZZZ
इकाइयों का निर्माण करने के लिए आवश्यक तोरणों की राशि है। ध्यान दें कि pylon(s)
आवश्यक होने पर बहुवचन होना चाहिए और जब नहीं ( ...1 additional pylon!
तो ...2 additional pylons!
)।
प्रोटॉस यूनिट और आपूर्ति लागत
यहां सभी इकाइयों की सूची और उनकी आपूर्ति की लागत है। तोरण एक अतिरिक्त 8 आपूर्ति प्रदान करते हैं।
Unit Supply Cost
Probe 1
Zealot 2
Sentry 2
Stalker 2
HighTemplar 2
DarkTemplar 2
Immortal 4
Colossus 6
Archon 4
Observer 1
WarpPrism 2
Phoenix 2
MothershipCore 2
VoidRay 4
Oracle 3
Tempest 4
Carrier 6
Mothership 8
बोनस के बिना उदाहरण
Input:
2 Probe Probe Probe Probe Stalker Zealot Carrier Probe Zealot
Output:
You must construct 1 additional pylon!
Why?
Adding up the supply costs for all of the units gives 17. The current 2 pylons provide 16 supply, so one more is needed to provide enough for 17.
Input:
5 Mothership Carrier Probe Tempest HighTemplar
Output:
true
Why?
Adding up the units gets 21. The current 5 pylons provide 40 supply, which is plenty enough.
Input:
0 Mothership Colossus Zealot
Output:
You must construct 2 additional pylons!
Why?
Adding the units gets 16. There is no pylons so 2 need to be built to provide enough supply.
बोनस
- किसी भी अनुभवी स्टारक्राफ्ट 2 खिलाड़ी को पता होगा कि आपको इसे एक मदरशिप में बदलने से पहले एक मदरशिप कोर की आवश्यकता है। इसके अलावा, आपके पास एक समय में केवल एक ही माहवारी हो सकती है (चाहे वह वास्तविक मातृत्व हो या मातृशक्ति कोर)। यदि इनमें से कोई भी स्थिति सत्य नहीं है, तो किसी भी गलत मूल्य का उत्पादन करें। यदि आपका प्रोग्राम यह देखने के लिए जाँच कर सकता है कि एक समय में केवल एक ही mothership सक्रिय है, और यह कि एक mothership कोर वास्तविक mothership से पहले बनाया गया है , तो अपनी बाइट की गिनती से 20% दूर लें।
- आप शायद ही जानते हों, लेकिन नेक्सस (प्रोटॉस कमांड सेंटर) वास्तव में आपूर्ति प्रदान करते हैं! यदि आपका कार्यक्रम इकाई की सूची में एक सांठगांठ का सामना करने पर हर बार अधिकतम आपूर्ति में 11 जोड़ सकता है, तो अपनी निर्धारित संख्या से 10% दूर ले जाएं । ध्यान दें कि यह कोई फर्क नहीं पड़ता कि नेक्सस बिल्ड ऑर्डर में कहां है, इसलिए
0 Probe Nexus
अभी भी वापस आ जाएगाtrue
।
बोनस के साथ उदाहरण
Input (Bonus 1):
3 Mothership Zealot
Output:
false
Why?
According to the first bonus, a mothership core has to be built before a mothership.
Input (Bonus 1):
3 MothershipCore Mothership MothershipCore
Output:
false
Why?
According to the first bonus, only one mothership can be built and here there is two (MothershipCore -> Mothership and a second MothershipCore).
Input (Bonus 2):
0 Probe Nexus Probe
Output:
true
Why?
According to the second bonus, nexuses add 11 to the maximum supply, allowing both probes to be built.
Input (Both Bonuses):
0 Nexus MothershipCore Mothership Carrier
Output:
You must construct 1 additional pylon.
Why?
There are no pylons, but the nexus provides 11 supply. The motherships take up 2 and 8, respectively and the carrier takes up 6. You need one more pylon to have enough to provide for all 16 supply.
टी एल; डॉ
इनपुट एक स्ट्रिंग जिसमें एक पूर्णांक और अंतरिक्ष से अलग इकाई नाम शामिल हैं (ऊपर तालिका से)। एक सत्य मूल्य का उत्पादन करें यदि आप सभी इकाइयों को N
पाइलों द्वारा प्रदान की गई आपूर्ति (इनपुट में पूर्णांक) के साथ बना सकते हैं। You must construct ZZZ additional pylon(s)
यदि अधिक तोरण की आवश्यकता हो तो आउटपुट की ZZZ
आवश्यकता होती है। यदि आवश्यक हो तो तोरण बहुवचन बनाने के लिए सुनिश्चित करें।
यह कोड-गोल्फ है , इसलिए बाइट्स (या आपकी भाषा की गणना पद्धति) में सबसे कम कोड जीतता है!
लीडरबोर्ड
यहां एक नियमित लीडरबोर्ड और भाषा के अनुसार विजेताओं का अवलोकन करने के लिए एक स्टैक स्निपेट है।
यह सुनिश्चित करने के लिए कि आपका उत्तर दिखाई देता है, कृपया अपना उत्तर शीर्षक मार्कडाउन टेम्पलेट का उपयोग करके शीर्षक के साथ शुरू करें:
# Language Name, N bytes
N
आपके प्रस्तुत करने का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:
# Ruby, <s>104</s> <s>101</s> 96 bytes
यदि आप अपने हेडर में कई संख्याओं को शामिल करना चाहते हैं (जैसे कि आपका स्कोर दो फ़ाइलों का योग है या आप दुभाषिया ध्वज दंड को अलग से सूचीबद्ध करना चाहते हैं), तो सुनिश्चित करें कि हेडर में वास्तविक अंक अंतिम संख्या है:
# Perl, 43 + 2 (-p flag) = 45 bytes
आप भाषा के नाम को एक लिंक भी बना सकते हैं जो लीडरबोर्ड स्निपेट में दिखाई देगा:
# [><>](http://esolangs.org/wiki/Fish), 121 bytes
var QUESTION_ID=69011,OVERRIDE_USER=36670;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?([\d\.]+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
N unit1 unit2 unit3...
।
true
या एक सत्य मूल्य स्वीकार्य है?