सही या गलत वैल्यू को Bool टाइप से दर्शाया जाता है।
Bool टाइप में केवल दो वैल्यू होती हैं: true और false.
julia> true
true
julia> false
false
Julia में तीन बूलियन ऑपरेटर हैं।
&& बूलियन "और" है।
अगर && के दोनों ओर के एक्सप्रेशन true हों, तो इसका परिणाम true होता है।
julia> true && true
true
julia> true && false
false
|| बूलियन "या" है।
अगर || के किसी भी एक ओर का एक्सप्रेशन true हो, तो इसका परिणाम true होता है।
julia> true || true
true
julia> false || true
true
! बूलियन "नहीं" है।
यह true और false वैल्यू को आपस में बदल देता है।
julia> !true
false
julia> !false
true
जब एक्सप्रेशन लंबे और जटिल हों, तो अपना इरादा साफ रखने के लिए ब्रैकेट का उपयोग करना सबसे अच्छा है।
julia> (true || false) && (false && true)
false
इस अभ्यास में आप उस वीडियो गेम के लिए कुछ लॉजिक लिखेंगे जिसे आपका एक दोस्त बना रहा है। गेम का मुख्य पात्र Annalyn है, एक बहादुर लड़की, जिसके पास एक उग्र और वफादार पालतू कुत्ता है। दुर्भाग्य से तब आफत आ जाती है, क्योंकि जंगल में बेरियाँ ढूँढ़ते समय उसकी सबसे अच्छी दोस्त का अपहरण कर लिया जाता है। Annalyn अपनी दोस्त को ढूँढ़कर छुड़ाने की कोशिश करेगी। वह चाहे तो इस काम में अपने कुत्ते को भी साथ ले जाएगी।
अंत में Annalyn उस शिविर तक पहुँच जाती है जहाँ उसकी दोस्त कैद है। वहाँ पता चलता है कि अपहरणकर्ता दो हैं: एक शक्तिशाली शूरवीर और एक चालाक धनुर्धर।
आगे क्या किया जाए, इसके लिए खिलाड़ी को कुछ विकल्प दिए जाते हैं। इन चारों संभावित विकल्पों में से हर एक के लिए आपको एक फंक्शन लिखना है, जो गेम को बताएगा कि वह विकल्प दिखाना चाहिए या नहीं।
अगर शूरवीर सो रहा है, तो Annalyn उसके ठीक से जागने और अपना कवच पहनने से पहले शिविर पर तेज़ हमला कर सकती है।
can_do_fast_attack नाम का एक फंक्शन बनाइए, जो एक बूलियन वैल्यू लेता है। यह वैल्यू बताती है कि शूरवीर जाग रहा है या नहीं।
यह फंक्शन true लौटाता है अगर पात्र की स्थिति के अनुसार 'तेज़ हमला' विकल्प उपलब्ध है। वरना यह false लौटाता है:
julia> knight_awake = true
julia> can_do_fast_attack(knight_awake)
false
अगर इनमें से कम से कम एक भी जाग रहा हो, तो इन पर जासूसी की जा सकती है। वरना जासूसी करना समय की बर्बादी है।
can_spy नाम का एक फंक्शन बनाइए, जो तीन बूलियन वैल्यू लेता है। ये वैल्यू क्रमशः बताती हैं कि शूरवीर, धनुर्धर और कैदी जाग रहे हैं या नहीं।
यह फंक्शन true लौटाता है अगर पात्रों की स्थिति के अनुसार 'जासूसी' विकल्प उपलब्ध है। वरना यह false लौटाता है:
# Output suppressed from the next 3 lines
julia> knight_awake = false
julia> archer_awake = true
julia> prisoner_awake = false
julia> can_spy(knight_awake, archer_awake, prisoner_awake)
true
अगर कैदी जाग रही है और धनुर्धर सो रहा है, तो उसे पक्षियों की आवाज़ों से संकेत भेजा जा सकता है। अगर धनुर्धर जाग रहा है, तो उसे सुरक्षित तरीके से संकेत नहीं भेजा जा सकता, क्योंकि धनुर्धर को भी पक्षियों के संकेतों की ट्रेनिंग है।
can_signal_prisoner नाम का एक फंक्शन बनाइए, जो दो बूलियन वैल्यू लेता है। ये क्रमशः बताती हैं कि धनुर्धर और कैदी जाग रहे हैं या नहीं।
यह फंक्शन true लौटाता है अगर पात्रों की स्थिति के अनुसार 'कैदी को संकेत देना' विकल्प उपलब्ध है। वरना यह false लौटाता है:
julia> archer_awake = false
julia> prisoner_awake = true
julia> can_signal_prisoner(archer_awake, prisoner_awake)
true
Annalyn अपनी दोस्त को छुड़ाने के लिए चुपचाप शिविर में घुसने की कोशिश कर सकती है। यह जोखिम भरा काम है और इसमें सफलता दो में से किसी एक तरीके से ही मिल सकती है:
अगर Annalyn के साथ उसका पालतू कुत्ता है, तो वह कैदी को छुड़ा सकती है, बशर्ते धनुर्धर सो रहा हो। शूरवीर कुत्ते से डरता है, और Annalyn तथा उसकी दोस्त के भागने से पहले धनुर्धर को तैयार होने का समय नहीं मिलेगा।
अगर Annalyn के साथ कुत्ता नहीं है, तो उसे और कैदी को बहुत चुपके से काम करना होगा! Annalyn कैदी को छुड़ा सकती है अगर कैदी जाग रही है और शूरवीर तथा धनुर्धर दोनों सो रहे हैं। लेकिन अगर कैदी सो रही है, तो उसे छुड़ाया नहीं जा सकता: Annalyn को अचानक सामने देखकर वह चौंक जाएगी और शूरवीर तथा धनुर्धर दोनों जाग जाएँगे।
can_free_prisoner नाम का एक फंक्शन बनाइए, जो चार बूलियन वैल्यू लेता है।
पहले तीन पैरामीटर क्रमशः बताते हैं कि शूरवीर, धनुर्धर और कैदी जाग रहे हैं या नहीं।
अंतिम पैरामीटर बताता है कि Annalyn का पालतू कुत्ता साथ है या नहीं।
यह फंक्शन true लौटाता है अगर पात्रों की स्थिति के अनुसार 'कैदी को छुड़ाना' विकल्प उपलब्ध है। वरना यह false लौटाता है:
julia> knight_awake = false
julia> archer_awake = true
julia> prisoner_awake = false
julia> dog_present = false
julia> can_free_prisoner(knight_awake, archer_awake, prisoner_awake, dog_present)
false
Exercism पर साइन अप कीजिए और Julia को 35 कॉन्सेप्ट128 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।