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

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

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

ভূমিকা

Cairo-তে বুলিয়ান মান প্রকাশ করা হয় আগে থেকেই ঘোষিত বুলিয়ান টাইপ bool দিয়ে, যার মান true কিংবা false হতে পারে।

let speeding = true;   // Boolean variable 'speeding' set to 'true'
let has_error = false; // Boolean variable 'has_error' set to 'false' 

Cairo তিনটি লজিক্যাল অপারেটর সমর্থন করে, যেগুলো এক্সপ্রেশনকে বুলিয়ান মান পর্যন্ত মূল্যায়ন করতে পারে এবং true অথবা false রিটার্ন করে।

অপারেটর এর অর্থ
&& (এবং) উভয় বিবৃতি ট্রু হলে এটি ট্রু হয়।
|| (অথবা) অন্তত একটি বিবৃতি ট্রু হলে এটি ট্রু হয়।
! (নয়) কেবল বিবৃতিটি ফলস হলেই এটি ট্রু হয়।

নির্দেশনা

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

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

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

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

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

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

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

let knight_awake = true;
can_fast_attack(knight_awake); // false

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

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

let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
can_spy(knight_awake, archer_awake, prisoner_awake); // true

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

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

let archer_awake = false;
let prisoner_awake = true;
can_signal_prisoner(archer_awake, prisoner_awake); // true

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

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

let knight_awake = false;
let archer_awake = true;
let prisoner_awake = false;
let dog_present = false;
can_free_prisoner(knight_awake, archer_awake, prisoner_awake, dog_present); // false
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Cairo Exercism

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

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