Java-তে বুলিয়ান বোঝানো হয় boolean টাইপ দিয়ে, যার মান true বা false হতে পারে।
Java তিনটি বুলিয়ান অপারেটর সমর্থন করে:
! (NOT): বুলিয়ানটিকে উল্টে দেয়&& (AND): দুটি বুলিয়ান নেয় এবং দুটিই true হলে true রিটার্ন করে|| (OR): দুটি বুলিয়ানের যেকোনো একটি true হলে true রিটার্ন করে!true // => false
!false // => true
true && false // => false
true && true // => true
false || false // => false
false || true // => true
এই অনুশীলনীতে, আপনার এক বন্ধু যে নতুন RPG গেমটি বানাচ্ছেন, তার কোয়েস্ট লজিক আপনি বাস্তবায়ন করবেন। গেমটির প্রধান চরিত্র অ্যানালিন, একজন সাহসী মেয়ে, যার আছে একটি হিংস্র ও বিশ্বস্ত পোষা কুকুর। দুর্ভাগ্যবশত, বিপর্যয় নেমে আসে: বনের মধ্যে ফল খুঁজতে গিয়ে তার সেরা বন্ধুকে অপহরণ করা হয়। অ্যানালিন তার বন্ধুকে খুঁজে উদ্ধার করার চেষ্টা করবে, চাইলে কোয়েস্টে তার কুকুরটিকেও সঙ্গে নিয়ে যাবে।
কিছু সময় ধরে পথ অনুসরণ করার পর, অ্যানালিন সেই শিবিরটি খুঁজে পায় যেখানে তার বন্ধুকে বন্দি করে রাখা হয়েছে। দেখা গেল অপহরণকারী দুজন: এক শক্তিশালী নাইট আর এক চতুর তিরন্দাজ।
অপহরণকারীদের খুঁজে পেয়ে, অ্যানালিন ভেবে দেখে নিচের কোন কোন কাজে সে লিপ্ত হতে পারে:
আপনার চারটি কাজ: বনের তিনটি চরিত্রের অবস্থা এবং অ্যানালিনের পোষা কুকুরটি উপস্থিত আছে কি না, তার ভিত্তিতে উপরোক্ত কাজগুলো করা সম্ভব কি না তা নির্ধারণের লজিক বাস্তবায়ন করা।
(static) AnnalynsInfiltration.canFastAttack() মেথডটি বাস্তবায়ন করুন, যা একটি বুলিয়ান মান নেয় এবং তা নির্দেশ করে নাইট জেগে আছে কি না।
নাইটের অবস্থার ভিত্তিতে দ্রুত আক্রমণ করা গেলে এই মেথডটি true রিটার্ন করে।
নাহলে এটি false রিটার্ন করে:
boolean knightIsAwake = true;
AnnalynsInfiltration.canFastAttack(knightIsAwake);
// => false
(static) AnnalynsInfiltration.canSpy() মেথডটি বাস্তবায়ন করুন, যা তিনটি বুলিয়ান মান নেয় এবং তা যথাক্রমে নির্দেশ করে নাইট, তিরন্দাজ ও বন্দি জেগে আছে কি না।
তিনটি চরিত্রের অবস্থার ভিত্তিতে দলটির উপর গুপ্তচরবৃত্তি করা গেলে মেথডটি true রিটার্ন করে।
নাহলে এটি false রিটার্ন করে:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
AnnalynsInfiltration.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true
(static) AnnalynsInfiltration.canSignalPrisoner() মেথডটি বাস্তবায়ন করুন, যা দুটি বুলিয়ান মান নেয় এবং তা যথাক্রমে নির্দেশ করে তিরন্দাজ ও বন্দি জেগে আছে কি না।
দুটি চরিত্রের অবস্থার ভিত্তিতে বন্দিকে সংকেত পাঠানো গেলে মেথডটি true রিটার্ন করে।
নাহলে এটি false রিটার্ন করে:
boolean archerIsAwake = false;
boolean prisonerIsAwake = true;
AnnalynsInfiltration.canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true
(static) AnnalynsInfiltration.canFreePrisoner() মেথডটি বাস্তবায়ন করুন, যা চারটি বুলিয়ান মান নেয়।
প্রথম তিনটি প্যারামিটার যথাক্রমে নির্দেশ করে নাইট, তিরন্দাজ ও বন্দি জেগে আছে কি না।
শেষ প্যারামিটারটি নির্দেশ করে অ্যানালিনের পোষা কুকুরটি উপস্থিত আছে কি না।
তিনটি চরিত্রের অবস্থা এবং অ্যানালিনের পোষা কুকুরটির উপস্থিতির ভিত্তিতে বন্দিকে মুক্ত করা গেলে মেথডটি true রিটার্ন করে।
নাহলে এটি false রিটার্ন করে:
boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
boolean petDogIsPresent = false;
AnnalynsInfiltration.canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
Exercism-এ সাইন আপ করুন, Java ট্র্যাকের 26টি কনসেপ্ট158টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।