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 का पालतू कुत्ता साथ है या नहीं।
can_fast_attack() फंक्शन बनाइए, जो एक बूलियन वैल्यू लेता है। यह वैल्यू बताती है कि नाइट जागा हुआ है या नहीं। नाइट की स्थिति के आधार पर अगर तेज़ हमला किया जा सकता है, तो यह फंक्शन true लौटाता है, वरना false लौटाता है:
let knight_awake = true;
can_fast_attack(knight_awake); // false
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
can_signal_prisoner() फंक्शन बनाइए, जो दो बूलियन वैल्यू लेता है। ये वैल्यू क्रमशः बताती हैं कि धनुर्धर और कैदी जागे हुए हैं या नहीं। इन दोनों पात्रों की स्थिति के आधार पर अगर कैदी को इशारा भेजा जा सकता है, तो यह फंक्शन true लौटाता है, वरना false लौटाता है:
let archer_awake = false;
let prisoner_awake = true;
can_signal_prisoner(archer_awake, prisoner_awake); // true
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
Exercism पर साइन अप कीजिए और Cairo को 25 कॉन्सेप्ट68 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।