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

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

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

ভূমিকা

একটি বুলিয়ান দুইটি মানের একটি প্রকাশ করে: true বা false। লজিক্যাল অপারেটরগুলো (!, &&, ||) সাধারণত বুলিয়ান মানের সাথে ব্যবহৃত হয় এবং একটি বুলিয়ান মান রিটার্ন করে।

নির্দেশনা

এই অনুশীলনীতে, আপনি একটি নতুন RPG গেমের কোয়েস্টের লজিক তৈরি করবেন, যেটি আপনার এক বন্ধু বানাচ্ছে। গেমটির প্রধান চরিত্র Annalyn, সাহসী এক মেয়ে, যার আছে একটি হিংস্র ও বিশ্বস্ত পোষা কুকুর। দুর্ভাগ্যবশত, বিপর্যয় নেমে আসে, কারণ বনে বেরি খুঁজতে গিয়ে তার সেরা বন্ধুকে অপহরণ করা হয়। Annalyn তার সেরা বন্ধুকে খুঁজে বের করার ও মুক্ত করার চেষ্টা করবে, এবং চাইলে এই কোয়েস্টে তার কুকুরটিকে সঙ্গে নিয়ে যাবে।

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

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

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

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

1. 'দ্রুত আক্রমণ' কাজটি সম্ভব কি না তা যাচাই করুন

canExecuteFastAttack নামের একটি ফাংশন তৈরি করুন, যা একটি বুলিয়ান মান নেয় এবং তা নির্দেশ করে নাইট জেগে আছে কি না। চরিত্রটির অবস্থার ভিত্তিতে 'দ্রুত আক্রমণ' কাজটি করা সম্ভব হলে ফাংশনটি true রিটার্ন করে। নাহলে false রিটার্ন করে:

const knightIsAwake = true;
canExecuteFastAttack(knightIsAwake);
// => false

2. 'গুপ্তচরবৃত্তি' কাজটি সম্ভব কি না তা যাচাই করুন

canSpy নামের একটি ফাংশন তৈরি করুন, যা তিনটি বুলিয়ান মান নেয়, এবং তা যথাক্রমে নির্দেশ করে নাইট, তিরন্দাজ ও বন্দী জেগে আছে কি না। চরিত্রগুলোর অবস্থার ভিত্তিতে 'গুপ্তচরবৃত্তি' কাজটি করা সম্ভব হলে ফাংশনটি true রিটার্ন করে। নাহলে false রিটার্ন করে:

const knightIsAwake = false;
const archerIsAwake = true;
const prisonerIsAwake = false;
canSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true

3. 'বন্দীকে সংকেত পাঠানো' কাজটি সম্ভব কি না তা যাচাই করুন

canSignalPrisoner নামের একটি ফাংশন তৈরি করুন, যা দুটি বুলিয়ান মান নেয়, এবং তা যথাক্রমে নির্দেশ করে তিরন্দাজ ও বন্দী জেগে আছে কি না। চরিত্রগুলোর অবস্থার ভিত্তিতে 'বন্দীকে সংকেত পাঠানো' কাজটি করা সম্ভব হলে ফাংশনটি true রিটার্ন করে। নাহলে false রিটার্ন করে:

const archerIsAwake = false;
const prisonerIsAwake = true;
canSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true

4. 'বন্দীকে মুক্ত করা' কাজটি সম্ভব কি না তা যাচাই করুন

canFreePrisoner নামের একটি ফাংশন তৈরি করুন, যা চারটি বুলিয়ান মান নেয়। প্রথম তিনটি প্যারামিটার যথাক্রমে নির্দেশ করে নাইট, তিরন্দাজ ও বন্দী জেগে আছে কি না। শেষ প্যারামিটারটি নির্দেশ করে Annalyn-এর পোষা কুকুর উপস্থিত আছে কি না। চরিত্রগুলোর অবস্থা ও Annalyn-এর পোষা কুকুরের উপস্থিতির ভিত্তিতে 'বন্দীকে মুক্ত করা' কাজটি করা সম্ভব হলে ফাংশনটি true রিটার্ন করে। নাহলে এটি false রিটার্ন করে:

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

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

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