এলিসের জাদু


গল্প

হবু জাদুকর এলিজকে কিছু বেসিক বিষয় অভ্যাস করতে হবে। তার কাছে কার্ডের একটি স্ট্যাক আছে, যেটি সে নাড়াচাড়া করতে চায়।

গল্পটা একটু সহজ করতে সে কেবল ১ থেকে ১০ পর্যন্ত কার্ডই ব্যবহার করে।

আমরা কার্ডের মান ১ থেকে ১০-এর মধ্যে সীমাবদ্ধ রাখছি, যাতে কেবল সংখ্যা নিয়েই কাজ করতে হয়, ফলে এই গল্পটি ব্যবহার করা অনুশীলনীগুলোকে কেবল সংখ্যার উপর নির্ভর করলেই চলে।

কাজ

এলিজের শিক্ষানবিশ হওয়ার গল্পের সাথে মানানসই কাজের কয়েকটি উদাহরণ:

  • স্ট্যাক থেকে একটি কার্ড বের করা
  • স্ট্যাকের একটি কার্ড বদল করা
  • স্ট্যাকের উপরে একটি কার্ড ঢোকানো
  • স্ট্যাক থেকে একটি কার্ড সরানো
  • স্ট্যাক থেকে উপরের কার্ডটি সরানো
  • স্ট্যাকের নিচে একটি কার্ড ঢোকানো
  • স্ট্যাকের নিচ থেকে একটি কার্ড সরানো
  • স্ট্যাকের আকার যাচাই করা

গল্পটি বাড়িয়ে অ্যারে বিশ্লেষণও শেখানো যায়:

  • একটি কার্ডের অবস্থান খুঁজে বের করা
  • কোনো কার্ড আছে কি না নির্ণয় করা
  • প্রতিটি কার্ড জোড় কি না নির্ণয় করা
  • স্ট্যাকে বিজোড় মানের কার্ড আছে কি না যাচাই করা
  • স্ট্যাক থেকে প্রথম বিজোড় কার্ডটি নেওয়া
  • প্রথম জোড় কার্ডটির অবস্থান নির্ণয় করা

গল্পটি বাড়িয়ে অ্যারে রূপান্তরও শেখানো যায়:

  • প্রতিটি কার্ড দ্বিগুণ করা
  • ডেকে থাকা প্রতিটি ৩-এর একাধিক কপি তৈরি করা
  • ডেকের ঠিক মাঝখান থেকে দুটি কার্ড খুঁজে বের করা
  • বাইরের দুটি কার্ড ডেকের মাঝখানে আবার ফিরে আসবে
  • যে কার্ডগুলো ২ নয়, সেগুলো উধাও হয়ে যায়
  • এলোমেলো করা ডেককে নিখুঁতভাবে সাজানো ডেকে রূপান্তর করা
  • প্রতিটি কার্ডকে মোট কার্ডসংখ্যায় পরিবর্তন করা

গল্পটি বাড়িয়ে অ্যারে ডিস্ট্রাকচারিংও শেখানো যায়:

  • প্রথম কার্ডটি নেওয়া (প্রচলিত পদ্ধতি ছাড়া, যেমন ইনডেক্সার বা মেথড)
  • দ্বিতীয় কার্ডটি নেওয়া (প্রচলিত পদ্ধতি ছাড়া, যেমন ইনডেক্সার বা মেথড)
  • প্রথম দুটি কার্ড অদলবদল করা (প্রচলিত পদ্ধতি ছাড়া, যেমন ইনডেক্সার বা মেথড)
  • উপরের কার্ডটি বাদ দেওয়া (প্রচলিত পদ্ধতি ছাড়া, যেমন ইনডেক্সার বা মেথড)
  • ফেস কার্ড ঢোকানো (প্রচলিত পদ্ধতি ছাড়া, যেমন ইনডেক্সার বা মেথড)

পরিভাষা

নির্দেশনায় (স্টাব কমেন্টারিসহ) বারবার আসা পরিভাষার জন্য এগুলো সুপারিশ, নিয়ম নয়

  • মূল চরিত্র এলিজ, আর তার সর্বনাম she/her। চরিত্রটি বোঝাতে হলে নামটি ব্যবহার করুন, বা তার সর্বনাম দিয়ে তাকে বোঝান।
  • array (বা সমতুল্য ডেটা টাইপ)-এর বদলে স্ট্যাক বা কার্ড স্ট্যাক শব্দটি ব্যবহার করুন
  • element-এর বদলে কার্ড শব্দটি ব্যবহার করুন
  • length-এর বদলে স্ট্যাকের আকার ব্যবহার করুন
  • উপরের কার্ড হলো প্রথম এলিমেন্ট
  • নিচের কার্ড হলো শেষ এলিমেন্ট

ইমপ্লিমেন্টেশন

বিকল্প সংস্করণ

গল্পের একটি বিকল্প সংস্করণে অভিনেতা আপনি (শিক্ষার্থী), আর এতে কেবল ডেক পুনরায় সাজানোর উপর জোর দেওয়া হয়েছে।

গল্প

আপনি একজন জাদুকর, আর আপনি একটি কার্ডের ডেক নিয়ে কাজ করেন। আপনার জাদুর কৌশলটি সঠিকভাবে দেখাতে হলে, আপনাকে একটি কার্ডকে এক অবস্থান থেকে আরেক অবস্থানে সরাতে পারতে হবে। অর্থাৎ, আপনাকে ডেকটি পুনরায় সাজাতে পারতে হবে। স্বাভাবিকভাবেই, আপনি কার্ড দুদিকেই সরাতে চাইবেন, এবং বলতে পারবেন "ডেকের উপরে থেকে" বা "ডেকের নিচ থেকে"।

কাজ

আপনি কার্ড পুনরায় সাজাতে চান, সেই গল্পের সাথে মানানসই কাজের কয়েকটি উদাহরণ:

  • একটি ফাংশন arrange তৈরি করুন, যা স্ট্যাকের একটি কার্ডকে এক নির্দিষ্ট অবস্থান থেকে আরেক নির্দিষ্ট অবস্থানে সরায় এবং একটি নতুন স্ট্যাক রিটার্ন করে
  • একটি ফাংশন rearrange তৈরি করুন, যা একই কাজ করে কিন্তু মূল স্ট্যাকটি পরিবর্তন করে

ইমপ্লিমেন্টেশন

রেফারেন্স