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

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

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

ভূমিকা

বুলিয়ান

C#-এ বুলিয়ানকে প্রকাশ করা হয় bool টাইপ দিয়ে, যার মান true অথবা false হতে পারে।

C# তিনটি বুলিয়ান অপারেটর সাপোর্ট করে: ! (NOT), && (AND) এবং || (OR)।

নির্দেশনা

এই অনুশীলনীতে আপনি একটি নতুন RPG গেমের কোয়েস্ট লজিক ইমপ্লিমেন্ট করবেন, যা আপনার এক বন্ধু বানাচ্ছে।

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

অ্যানালিন তার সেরা বন্ধুকে খুঁজে বের করার ও মুক্ত করার চেষ্টা করবে, আর চাইলে এই কোয়েস্টে তার কুকুরটিকেও সঙ্গে নিতে পারবে।

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

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

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

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

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

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

var knightIsAwake = true;
QuestLogic.CanFastAttack(knightIsAwake);
// => false

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

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

var knightIsAwake = false;
var archerIsAwake = true;
var prisonerIsAwake = false;
QuestLogic.CanSpy(knightIsAwake, archerIsAwake, prisonerIsAwake);
// => true

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

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

var archerIsAwake = false;
var prisonerIsAwake = true;
QuestLogic.CanSignalPrisoner(archerIsAwake, prisonerIsAwake);
// => true

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

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

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

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

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