ট্র্যাক
/
Java
Java
/
অনুশীলনী
/
অ্যানালিনের অনুপ্রবেশ
অ্যানালিনের অনুপ্রবেশ

অ্যানালিনের অনুপ্রবেশ

লার্নিং অনুশীলনী

ভূমিকা

বুলিয়ান

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

কিছু সময় ধরে পথ অনুসরণ করার পর, অ্যানালিন সেই শিবিরটি খুঁজে পায় যেখানে তার বন্ধুকে বন্দি করে রাখা হয়েছে। দেখা গেল অপহরণকারী দুজন: এক শক্তিশালী নাইট আর এক চতুর তিরন্দাজ।

অপহরণকারীদের খুঁজে পেয়ে, অ্যানালিন ভেবে দেখে নিচের কোন কোন কাজে সে লিপ্ত হতে পারে:

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

আপনার চারটি কাজ: বনের তিনটি চরিত্রের অবস্থা এবং অ্যানালিনের পোষা কুকুরটি উপস্থিত আছে কি না, তার ভিত্তিতে উপরোক্ত কাজগুলো করা সম্ভব কি না তা নির্ধারণের লজিক বাস্তবায়ন করা।

1. দ্রুত আক্রমণ করা যায় কি না তা যাচাই করুন

(static) AnnalynsInfiltration.canFastAttack() মেথডটি বাস্তবায়ন করুন, যা একটি বুলিয়ান মান নেয় এবং তা নির্দেশ করে নাইট জেগে আছে কি না। নাইটের অবস্থার ভিত্তিতে দ্রুত আক্রমণ করা গেলে এই মেথডটি true রিটার্ন করে। নাহলে এটি false রিটার্ন করে:

boolean knightIsAwake = true;
AnnalynsInfiltration.canFastAttack(knightIsAwake);
// => false

2. দলটির উপর গুপ্তচরবৃত্তি করা যায় কি না তা যাচাই করুন

(static) AnnalynsInfiltration.canSpy() মেথডটি বাস্তবায়ন করুন, যা তিনটি বুলিয়ান মান নেয় এবং তা যথাক্রমে নির্দেশ করে নাইট, তিরন্দাজ ও বন্দি জেগে আছে কি না। তিনটি চরিত্রের অবস্থার ভিত্তিতে দলটির উপর গুপ্তচরবৃত্তি করা গেলে মেথডটি true রিটার্ন করে। নাহলে এটি false রিটার্ন করে:

boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
AnnalynsInfiltration.canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true

3. বন্দিকে সংকেত পাঠানো যায় কি না তা যাচাই করুন

(static) AnnalynsInfiltration.canSignalPrisoner() মেথডটি বাস্তবায়ন করুন, যা দুটি বুলিয়ান মান নেয় এবং তা যথাক্রমে নির্দেশ করে তিরন্দাজ ও বন্দি জেগে আছে কি না। দুটি চরিত্রের অবস্থার ভিত্তিতে বন্দিকে সংকেত পাঠানো গেলে মেথডটি true রিটার্ন করে। নাহলে এটি false রিটার্ন করে:

boolean archerIsAwake = false;
boolean prisonerIsAwake = true;
AnnalynsInfiltration.canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true

4. বন্দিকে মুক্ত করা যায় কি না তা যাচাই করুন

(static) AnnalynsInfiltration.canFreePrisoner() মেথডটি বাস্তবায়ন করুন, যা চারটি বুলিয়ান মান নেয়। প্রথম তিনটি প্যারামিটার যথাক্রমে নির্দেশ করে নাইট, তিরন্দাজ ও বন্দি জেগে আছে কি না। শেষ প্যারামিটারটি নির্দেশ করে অ্যানালিনের পোষা কুকুরটি উপস্থিত আছে কি না। তিনটি চরিত্রের অবস্থা এবং অ্যানালিনের পোষা কুকুরটির উপস্থিতির ভিত্তিতে বন্দিকে মুক্ত করা গেলে মেথডটি true রিটার্ন করে। নাহলে এটি false রিটার্ন করে:

boolean knightIsAwake = false;
boolean archerIsAwake = true;
boolean prisonerIsAwake = false;
boolean petDogIsPresent = false;
AnnalynsInfiltration.canFreePrisoner(knightIsAwake, archerIsAwake, prisonerIsAwake, petDogIsPresent);
// => false
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Java Exercism

অ্যানালিনের অনুপ্রবেশ শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Java ট্র্যাকের 26টি কনসেপ্ট158টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।