Elixir বুলিয়ান টাইপ দিয়ে ট্রু ও ফলস মান প্রকাশ করে। এতে মাত্র দুটি মান থাকে: true এবং false। এই মানগুলো একটি ভ্যারিয়েবলে অ্যাসাইন করা যায়:
true_variable = true
false_variable = false
and/2, or/2 এবং not/1 অপারেটর ব্যবহার করে আমরা কঠোর বুলিয়ান এক্সপ্রেশন মূল্যায়ন করতে পারি।
true_variable = true and true
false_variable = true and false
true_variable = false or true
false_variable = false or false
true_variable = not false
false_variable = not true
বুলিয়ান মান রিটার্ন করে এমন একটি ফাংশন লেখার সময় ফাংশনের নামের শেষে একটি ? দিয়ে শেষ করাই প্রচলিত রীতি। বুলিয়ান মান সংরক্ষণ করে এমন ভ্যারিয়েবলের ক্ষেত্রেও একই রীতি ব্যবহার করা যায়।
def either_true?(a?, b?) do
a? or b?
end
এই অনুশীলনীতে, আপনাকে ক্লাসিক গেম Pac-Man-এর কিছু নিয়ম Elixir ফাংশনে অনুবাদ করতে হবে।
আপনার হাতে অনুবাদ করার জন্য চারটি নিয়ম আছে, যেগুলোর সবই গেম স্টেটের সাথে সম্পর্কিত।
আর্গুমেন্টগুলো কীভাবে তৈরি হচ্ছে তা নিয়ে ভাববেন না, শুধু আর্গুমেন্টগুলো একসাথে মিলিয়ে কীভাবে কাঙ্ক্ষিত ফলাফলটি রিটার্ন করা যায় সেদিকে মনোযোগ দিন।
Rules.eat_ghost?/2 ফাংশনটি ডিফাইন করুন, যা দুটি আর্গুমেন্ট নেয় (Pac-Man-এর একটি পাওয়ার পেলেট সক্রিয় আছে কি না এবং Pac-Man একটি ভূত স্পর্শ করছে কি না) এবং Pac-Man ভূতটি খেতে পারলে একটি বুলিয়ান মান রিটার্ন করে। ফাংশনটি কেবল তখনই ট্রু রিটার্ন করা উচিত যদি Pac-Man-এর একটি পাওয়ার পেলেট সক্রিয় থাকে এবং সে একটি ভূত স্পর্শ করছে।
Rules.eat_ghost?(false, true)
# => false
Rules.score?/2 ফাংশনটি ডিফাইন করুন, যা দুটি আর্গুমেন্ট নেয় (Pac-Man একটি পাওয়ার পেলেট স্পর্শ করছে কি না এবং Pac-Man একটি ডট স্পর্শ করছে কি না) এবং Pac-Man স্কোর করলে একটি বুলিয়ান মান রিটার্ন করে। Pac-Man একটি পাওয়ার পেলেট বা একটি ডট স্পর্শ করলে ফাংশনটি ট্রু রিটার্ন করা উচিত।
Rules.score?(true, true)
# => true
Rules.lose?/2 ফাংশনটি ডিফাইন করুন, যা দুটি আর্গুমেন্ট নেয় (Pac-Man-এর একটি পাওয়ার পেলেট সক্রিয় আছে কি না এবং Pac-Man একটি ভূত স্পর্শ করছে কি না) এবং Pac-Man হেরে গেলে একটি বুলিয়ান মান রিটার্ন করে। Pac-Man একটি ভূত স্পর্শ করলে এবং তার কোনো পাওয়ার পেলেট সক্রিয় না থাকলে ফাংশনটি ট্রু রিটার্ন করা উচিত।
Rules.lose?(false, true)
# => true
Rules.win?/3 ফাংশনটি ডিফাইন করুন, যা তিনটি আর্গুমেন্ট নেয় (Pac-Man সব ডট খেয়ে ফেলেছে কি না, Pac-Man-এর একটি পাওয়ার পেলেট সক্রিয় আছে কি না, এবং Pac-Man একটি ভূত স্পর্শ করছে কি না) এবং Pac-Man জিতে গেলে একটি বুলিয়ান মান রিটার্ন করে। Pac-Man সব ডট খেয়ে ফেললে এবং ৩ নম্বর অংশে ডিফাইন করা আর্গুমেন্ট অনুযায়ী হারিয়ে না গেলে ফাংশনটি ট্রু রিটার্ন করা উচিত।
Rules.win?(false, true, false)
# => false
Exercism-এ সাইন আপ করুন, Elixir ট্র্যাকের 58টি কনসেপ্ট168টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।