ট্রু বা ফলস মান 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
এই অনুশীলনীতে আপনি একটি ভিডিও গেমের জন্য কিছু লজিক লিখবেন, যেটি আপনার এক বন্ধু তৈরি করছে। গেমটির মূল চরিত্র অ্যানালিন, একজন সাহসী মেয়ে, যার আছে একটি হিংস্র ও অনুগত পোষা কুকুর। দুর্ভাগ্যক্রমে, বিপর্যয় নেমে আসে, কারণ বনের মধ্যে বেরি খুঁজতে গিয়ে তার সেরা বন্ধু অপহৃত হয়। অ্যানালিন তার বন্ধুকে খুঁজে বের করে মুক্ত করার চেষ্টা করবে, এবং চাইলে এই অভিযানে তার কুকুরকে সঙ্গে নিয়েও যেতে পারে।
শেষ পর্যন্ত অ্যানালিন সেই শিবির খুঁজে পায় যেখানে তার বন্ধুকে বন্দি করে রাখা হয়েছে, এবং দেখা যায় সেখানে দুই অপহরণকারী আছে: একজন শক্তিশালী নাইট এবং একজন চতুর আর্চার।
খেলোয়াড়ের সামনে এরপর কী করা যায় তার কয়েকটি অপশন তুলে ধরা হয়। চারটি সম্ভাব্য অপশনের প্রতিটির জন্য আপনাকে একটি ফাংশন লিখতে হবে, যা গেমটিকে জানাবে যে অপশনটি দেখানো উচিত কি না।
নাইট যদি ঘুমিয়ে থাকে, তাহলে নাইট পুরোপুরি জেগে উঠে বর্ম পরার আগেই অ্যানালিন শিবিরে একটি দ্রুত হামলা চালাতে পারবে।
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
অ্যানালিন তার বন্ধুকে মুক্ত করতে চুপিচুপি শিবিরে ঢোকার চেষ্টা করতে পারে। এটি একটি ঝুঁকিপূর্ণ কাজ, এবং কেবল দুটি উপায়ের একটিতে সফল হওয়া সম্ভব:
অ্যানালিনের সঙ্গে তার পোষা কুকুর থাকলে, আর্চার ঘুমিয়ে থাকলেই সে বন্দিকে উদ্ধার করতে পারে। নাইট কুকুরটিকে ভয় পায়, আর অ্যানালিন ও তার বন্ধুর পালিয়ে যাওয়ার আগে আর্চারের প্রস্তুত হওয়ার সময় থাকবে না।
অ্যানালিনের সঙ্গে তার কুকুর না থাকলে তাকে ও বন্দিকে খুব চুপিচুপি চলতে হবে! বন্দি জেগে থাকলে এবং নাইট ও আর্চার দুজনেই ঘুমিয়ে থাকলে অ্যানালিন তাকে মুক্ত করতে পারে, কিন্তু বন্দি ঘুমিয়ে থাকলে তাকে উদ্ধার করা যায় না: অ্যানালিনকে হঠাৎ দেখে সে চমকে উঠবে এবং নাইট ও আর্চারকে জাগিয়ে ফেলবে।
can_free_prisoner নামে একটি ফাংশন তৈরি করুন, যেটি চারটি বুলিয়ান মান নেয়। প্রথম তিনটি প্যারামিটার যথাক্রমে নাইট, আর্চার ও বন্দি জেগে আছে কি না তা নির্দেশ করে। শেষ প্যারামিটারটি নির্দেশ করে অ্যানালিনের পোষা কুকুরটি উপস্থিত আছে কি না। চরিত্রগুলোর অবস্থার ভিত্তিতে 'বন্দিকে মুক্ত করা' অ্যাকশনটি উপলব্ধ থাকলে ফাংশনটি 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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।