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

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

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

परिचय

Cairo में बूलियन को पहले से घोषित बूलियन टाइप bool से दर्शाया जाता है, जिसकी वैल्यू true या false हो सकती है।

let speeding = true;   // Boolean variable 'speeding' set to 'true'
let has_error = false; // Boolean variable 'has_error' set to 'false' 

Cairo तीन लॉजिकल ऑपरेटर सपोर्ट करता है, जो किसी एक्सप्रेशन का मूल्यांकन करके बूलियन वैल्यू निकालते हैं, यानी true या false।

ऑपरेटर इसका मतलब
&& (और) यह सही होता है जब दोनों दावे सही हों।
|| (या) यह सही होता है जब कम से कम एक दावा सही हो।
! (नहीं) यह तभी सही होता है जब दावा गलत हो।

निर्देश

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

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

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

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

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

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

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

let knight_awake = true;
can_fast_attack(knight_awake); // false

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

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

let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
can_spy(knight_awake, archer_awake, prisoner_awake); // true

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

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

let archer_awake = false;
let prisoner_awake = true;
can_signal_prisoner(archer_awake, prisoner_awake); // true

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

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

let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
let dog_present = false;
can_free_prisoner(knight_awake, archer_awake, prisoner_awake, dog_present); // false
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Cairo Exercism

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

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