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

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

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

परिचय

बूलियन दो वैल्यू में से एक को दर्शाता है: true या false। लॉजिकल ऑपरेटर (!, &&, ||) आमतौर पर बूलियन वैल्यू के साथ इस्तेमाल किए जाते हैं और वे एक बूलियन वैल्यू लौटाते हैं।

निर्देश

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

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

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

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

आपके सामने चार काम हैं। इनमें आपको ऐसा लॉजिक बनाना है जो बताए कि जंगल में मिले तीन पात्रों की स्थिति और Annalyn के पालतू कुत्ते की मौजूदगी को देखते हुए ऊपर बताए गए काम किए जा सकते हैं या नहीं।

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

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

const knightIsAwake = true;
canExecuteFastAttack(knightIsAwake);
// => false

2. जाँचिए कि 'जासूसी' वाला काम संभव है या नहीं

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

const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true

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

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

const archerIsAwake = false;
const prisonerIsAwake = true;
canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true

4. जाँचिए कि 'कैदी को आज़ाद करना' वाला काम संभव है या नहीं

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

const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
const petDogIsPresent = false;
canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
JavaScript Exercism

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

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