ट्रैक
/
Crystal
Crystal
/
अभ्यास
/
Crystal शिकारी
Crystal शिकारी

Crystal शिकारी

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

परिचय

Crystal में एक टाइप होता है जिसे Bool कहते हैं। यह true और false वैल्यू को दर्शाता है।

लॉजिकल ऑपरेटर

Crystal में तीन लॉजिकल ऑपरेटर हैं (!, ||, &&)। ये बूलियन को मिलाकर ऐसे एक्सप्रेशन बनाते हैं जो अलग-अलग वैल्यू देते हैं।

और(&&)

Crystal में और ऑपरेटर को && से दर्शाया जाता है। अगर दोनों वैल्यू true हों तो यह true लौटाता है; वरना यह false लौटाता है। और ऑपरेटर का उपयोग करते समय एक बूलियन && के दाईं ओर और दूसरा बाईं ओर रखा जाता है।

true && true
# => true

true && false
# => false

या(||)

Crystal में या ऑपरेटर को || से दर्शाया जाता है। अगर दी गई वैल्यू में से कम से कम एक true हो तो यह true लौटाता है। अगर दोनों वैल्यू false हों तो यह false लौटाता है। या ऑपरेटर का उपयोग करते समय एक बूलियन || के दाईं ओर और दूसरा बाईं ओर रखा जाना चाहिए।

true || true
# => true

true || false
# => true

false || false
# => false

नहीं(!)

Crystal में नहीं ऑपरेटर को ! से दर्शाया जाता है। अगर दिया गया बूलियन false हो तो यह true लौटाता है, और अगर true दिया गया हो तो false लौटाता है। नहीं ऑपरेटर का उपयोग करते समय एक बूलियन ऑपरेटर (!) के बाद रखा जाना चाहिए।

!true
# => false

!false
# => true

गोल ब्रैकेट(()) का उपयोग

बूलियन के साथ काम करते समय आप गोल ब्रैकेट का उपयोग यह तय करने के लिए कर सकते हैं कि पहले किस बूलियन का मूल्यांकन होगा। गोल ब्रैकेट का उपयोग कैसे किया गया है, उसके आधार पर परिणाम अलग हो सकता है। Crystal में गोल ब्रैकेट के अंदर जो होता है, उसका मूल्यांकन पहले होता है।

true && false && false || true
# => true

true && false && (false || true)
# => false

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

!true && false
# => false

!(true && false)
# => true
Note

गोल ब्रैकेट सिर्फ तब इस्तेमाल कीजिए जब वे परिणाम को बदलते हों; वरना उन्हें छोड़ दीजिए।

निर्देश

आप एक नया खेल Crystal Hunter बना रहे हैं, जो बहुत पसंद किया जाएगा। इस खेल में आप एक पात्र हैं, जो इधर-उधर घूमता है और क्रिस्टल इकट्ठा करता है। सारे क्रिस्टल उठा लेने पर खिलाड़ी जीत जाता है। अगर खिलाड़ी किसी डाकू के संपर्क में आ जाए, तो वह अपने सारे क्रिस्टल और खेल दोनों हार जाता है। इस नियम का एक अपवाद है: खिलाड़ी के पास कोई चालू पावर-अप हो सकता है, जो उसे डाकुओं के लिए अदृश्य बना देता है।

इस खेल में काम आने वाले कुछ नियम लिखना आपका लक्ष्य है।

1. तय कीजिए कि पात्र को बोनस अंक मिलेंगे या नहीं

खेल में अगर पात्र पावर-अप के साथ किसी डाकू को छू ले, तो उसे बोनस अंक मिलते हैं।

Rules#bonus_points? मेथड बनाइए, जो दो आर्गुमेंट लेता है (अगर पात्र के पास कोई चालू पावर-अप है, और अगर पात्र किसी डाकू को छू रहा है) और एक बूलियन वैल्यू लौटाता है, जो बताती है कि पात्र को बोनस अंक मिलेंगे या नहीं। मेथड को true सिर्फ़ तब लौटाना चाहिए जब पात्र के पास पावर-अप चालू हो और वह किसी डाकू को छू रहा हो, और बाकी सभी हालतों में false लौटाना चाहिए।

Rules.new.bonus_points?(false, true)
# => false

2. तय कीजिए कि पात्र को अंक मिलते हैं या नहीं

खेल में क्रिस्टल या पावर-अप उठाने पर खिलाड़ी को अंक मिलते हैं।

Rules#score? मेथड बनाइए, जो दो आर्गुमेंट लेता है (अगर पात्र किसी पावर-अप को छू रहा है, और अगर पात्र किसी क्रिस्टल को छू रहा है) और एक बूलियन वैल्यू लौटाता है, जो बताती है कि पात्र को अंक मिले या नहीं। मेथड को true लौटाना चाहिए अगर पात्र किसी पावर-अप या क्रिस्टल को छूता है, और बाकी हालतों में false लौटाना चाहिए।

Rules.new.score?(true, true)
# => true

3. तय कीजिए कि पात्र हारता है या नहीं

Rules#lose? मेथड बनाइए, जो दो आर्गुमेंट लेता है (अगर पात्र के पास कोई चालू पावर-अप है, और अगर पात्र किसी डाकू को छू रहा है) और एक बूलियन वैल्यू लौटाता है, जो बताती है कि पात्र हारता है या नहीं। मेथड को true लौटाना चाहिए अगर पात्र किसी डाकू को छूता है और उसके पास पावर-अप चालू नहीं है, और बाकी हालतों में false लौटाना चाहिए।

Rules.new.lose?(false, true)
# => true

4. तय कीजिए कि पात्र जीतता है या नहीं

Rules#win? मेथड बनाइए, जो तीन आर्गुमेंट लेता है (अगर पात्र ने सारे क्रिस्टल उठा लिए हैं, अगर पात्र के पास पावर-अप चालू है, और अगर पात्र किसी डाकू को छू रहा है) और एक बूलियन वैल्यू लौटाता है, जो बताती है कि पात्र जीतता है या नहीं। मेथड को true लौटाना चाहिए अगर पात्र ने सारे क्रिस्टल इकट्ठा कर लिए हैं और भाग 3 में बताए गए आर्गुमेंट के हिसाब से वह नहीं हारा है, और बाकी हालतों में false लौटाना चाहिए।

Rules.new.win?(false, true, false)
# => false
GitHub के ज़रिए संपादित करें यह लिंक एक नई विंडो या टैब में खुलता है
Crystal Exercism

Crystal शिकारी शुरू करने के लिए तैयार हैं?

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