ट्रैक
/
Elm
Elm
/
अभ्यास
/
अनलिन की घुसपैठ
अनलिन की घुसपैठ

अनलिन की घुसपैठ

सीखने का अभ्यास

परिचय

बूलियन

Bool टाइप भाषा के बुनियादी हिस्सों में से एक है। इसका उद्देश्य यह बताना है कि कोई चीज़ सही है या गलत, और इसके लिए True और False वैल्यू होती हैं।

बूलियन को && ("AND") और || ("OR") ऑपरेटरों की मदद से जोड़ा जा सकता है, और not फंक्शन से उनका उलटा निकाला जा सकता है।

कोड में ऐसी शाखाएँ बनाने के लिए भी बूलियन बहुत काम के हैं, जो तभी चलती हैं जब कुछ खास शर्तें पूरी होती हैं। Elm में यह काम if-then-else एक्सप्रेशन से किया जाता है, जिसका इस्तेमाल इस तरह होता है।

if someCondition || (someOtherCondition && anotherCondition) then
    doSomething
else
    doSomethingElse

निर्देश

इस अभ्यास में आप एक नए RPG गेम के लिए क्वेस्ट लॉजिक बनाएँगे, जिसे आपका कोई दोस्त बना रहा है। गेम की मुख्य पात्र Annalyn है, जो एक बहादुर लड़की है और जिसके पास एक उग्र और वफादार पालतू कुत्ता है। लेकिन दुर्भाग्य से मुसीबत आन पड़ी, क्योंकि जंगल में बेर ढूँढते समय उसकी सबसे अच्छी दोस्त का अपहरण हो गया। Annalyn अपनी सबसे अच्छी दोस्त को ढूँढकर आज़ाद करने की कोशिश करेगी, और चाहे तो इस काम में अपने कुत्ते को साथ ले जाएगी।

अपनी दोस्त के पीछे-पीछे कुछ समय चलने के बाद उसे वह शिविर मिल जाता है जहाँ उसकी दोस्त कैद है। पता चलता है कि अपहरण करने वाले दो लोग हैं: एक शक्तिशाली शूरवीर और एक चालाक धनुर्धर।

अपहरण करने वालों को ढूँढ लेने के बाद Annalyn सोचती है कि वह नीचे दिए गए कौन-कौन से काम कर सकती है:

  • तेज़ हमला: तेज़ हमला तभी किया जा सकता है जब शूरवीर सो रहा हो, क्योंकि उसे अपना कवच पहनने में समय लगता है, इसलिए वह असुरक्षित रहेगा।
  • गुप्त हमला: अगर Annalyn बिना पकड़े गए सोते हुए शूरवीर तक पहुँच जाती है, तो गुप्त हमले से वह 12 नुकसान पहुँचाती है। वरना वह शूरवीर को सिर्फ 7 नुकसान पहुँचाती है।
  • जासूसी: अगर उनमें से कम से कम एक जाग रहा हो, तो उन पर जासूसी की जा सकती है। वरना जासूसी करना समय की बर्बादी है।
  • कैदी को संकेत देना: अगर कैदी जाग रहा हो और धनुर्धर सो रहा हो, तो पक्षियों की आवाज़ों से कैदी को संकेत दिया जा सकता है, क्योंकि धनुर्धरों को पक्षियों के संकेतों में प्रशिक्षण दिया जाता है, इसलिए वे संदेश को बीच में पकड़ सकते हैं।
  • कैदी को आज़ाद करना: Annalyn कैदी को आज़ाद करने के लिए चुपके से शिविर में घुसने की कोशिश कर सकती है। यह एक जोखिम भरा काम है और यह सिर्फ दो तरीकों से सफल हो सकता है:
    • अगर Annalyn अपने पालतू कुत्ते को साथ लाई हो, तो वह कैदी को तभी बचा सकती है जब धनुर्धर सो रहा हो। शूरवीर कुत्ते से डरता है, और Annalyn तथा कैदी के भागने से पहले धनुर्धर को तैयार होने का समय नहीं मिलेगा।
    • अगर Annalyn के पास अपना कुत्ता न हो, तो उसे और कैदी को बहुत चुपके से काम करना होगा! Annalyn कैदी को तभी आज़ाद कर सकती है जब कैदी जाग रहा हो और शूरवीर तथा धनुर्धर दोनों सो रहे हों, लेकिन अगर कैदी सो रहा हो, तो उसे बचाया नहीं जा सकता: Annalyn के अचानक आने से कैदी चौंक जाएगा और शूरवीर तथा धनुर्धर दोनों जाग जाएँगे।

आपके पास पाँच काम हैं: जंगल में मिले तीनों पात्रों की स्थिति, और Annalyn का पालतू कुत्ता साथ है या नहीं, इनके आधार पर यह तय करने का लॉजिक बनाना कि ऊपर बताए गए काम उपलब्ध हैं या नहीं।

1. जाँचिए कि तेज़ हमला किया जा सकता है या नहीं

canFastAttack फंक्शन बनाइए जो एक बूलियन वैल्यू लेता है, जो बताती है कि शूरवीर जाग रहा है या नहीं। शूरवीर की स्थिति के आधार पर यह फंक्शन True लौटाता है अगर तेज़ हमला किया जा सकता है। वरना यह False लौटाता है:

knightIsAwake = True

canFastAttack knightIsAwake
    --> False

2. जाँचिए कि समूह पर जासूसी की जा सकती है या नहीं

canSpy फंक्शन बनाइए जो तीन बूलियन वैल्यू लेता है, जो क्रमशः बताती हैं कि शूरवीर, धनुर्धर और कैदी जाग रहे हैं या नहीं। तीनों पात्रों की स्थिति के आधार पर यह फंक्शन True लौटाता है अगर समूह पर जासूसी की जा सकती है। वरना यह False लौटाता है:

knightIsAwake = False
archerIsAwake = True
prisonerIsAwake = False

canSpy knightIsAwake archerIsAwake prisonerIsAwake
    --> True

3. जाँचिए कि कैदी को संकेत दिया जा सकता है या नहीं

canSignalPrisoner फंक्शन बनाइए जो दो बूलियन वैल्यू लेता है, जो क्रमशः बताती हैं कि धनुर्धर और कैदी जाग रहे हैं या नहीं। दोनों पात्रों की स्थिति के आधार पर यह फंक्शन True लौटाता है अगर कैदी को संकेत दिया जा सकता है। वरना यह False लौटाता है:

archerIsAwake = False
prisonerIsAwake = True

canSignalPrisoner archerIsAwake prisonerIsAwake
    --> True

4. जाँचिए कि कैदी को आज़ाद किया जा सकता है या नहीं

canFreePrisoner फंक्शन बनाइए जो चार बूलियन वैल्यू लेता है। पहले तीन पैरामीटर क्रमशः बताते हैं कि शूरवीर, धनुर्धर और कैदी जाग रहे हैं या नहीं। अंतिम पैरामीटर बताता है कि Annalyn का पालतू कुत्ता मौजूद है या नहीं। तीनों पात्रों की स्थिति और Annalyn के पालतू कुत्ते की मौजूदगी के आधार पर यह फंक्शन True लौटाता है अगर कैदी को आज़ाद किया जा सकता है। वरना यह False लौटाता है:

knightIsAwake = False
archerIsAwake = True
prisonerIsAwake = False
petDogIsPresent = False

canFreePrisoner knightIsAwake archerIsAwake prisonerIsAwake petDogIsPresent
    --> False

5. गुप्त हमले से होने वाले नुकसान की गणना कीजिए

stealthAttackDamage फंक्शन बनाइए जो एक बूलियन वैल्यू लेता है, जो बताती है कि Annalyn पकड़ी गई या नहीं। अगर वह पकड़ी गई तो यह फंक्शन 7 लौटाता है, वरना 12।

annalynIsDetected = True

stealthAttackDamage annalynIsDetected
    --> 7
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Elm Exercism

अनलिन की घुसपैठ शुरू करने के लिए तैयार हैं?

Exercism पर साइन अप कीजिए और Elm को 28 कॉन्सेप्ट110 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।