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

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

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

परिचय

बूलियन

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

C# में तीन बूलियन ऑपरेटर होते हैं: ! (नहीं), && (और) और || (या)।

निर्देश

इस अभ्यास में आप एक नए RPG गेम का क्वेस्ट लॉजिक बनाएँगे। यह गेम आपका कोई दोस्त बना रहा है।

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

एनालिन अपनी सबसे अच्छी दोस्त को ढूँढकर आज़ाद कराने की कोशिश करेगी। वह चाहे तो इस काम में अपने कुत्ते को भी साथ ले जा सकती है।

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

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

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

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

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

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

var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false

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

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

var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true

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

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

var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true

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

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

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

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

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