বিভিন্ন প্রোগ্রামিং ধারণা

আমরা প্রোগ্রামিং বা কোডিং-এর সাথে সম্পর্কিত বেশ কিছু শব্দ সম্পর্কে প্রথমিক ধারনা পেয়েছিলাম, “প্রোগ্রামিং এর সাথে প্রচলিত কিছু শব্দ” অনুচ্ছেদে। এই অনুচ্ছেদে আমরা চেষ্টা করবো প্রোগ্রামিং এর এই ধারণা বা বৈশিষ্টগুলো আমাদের তৈরী প্রোগ্রামগুলোতে ব্যবহার করতে। একধিক ধারণা বা বৈশিষ্টগুলো ব্যবহার করে আমরা বড় বড় প্রোগ্রাম তৈরী করতে পারবো।
কন্ডিশন (Condition)
প্রোগ্রামে একটি কোড ব্লক যোগ করা হলে সেটি একটি নির্দিষ্ট কাজ করে। তবে যদি আমরা চাই যে, ব্লকটি তখনই কাজ করবে যদি এক বা একাধিক নির্দিষ্ট কন্ডিশন বা শর্ত পূরণ করা হয়। সেক্ষেত্রে আমাদের “নিয়ন্ত্রণ (Control)” ব্লকগুলো ব্যবহার করতে হবে। কোনো কোন ক্ষেত্রে আবার “ঘটনা (Events)” অংশ থেকেও ব্যবহার করা যেতে পারে।
প্রোগ্রাম তৈরীতে আমরা নিচে কন্ডিশন (Condition) বা শর্তের বিষয়টা উল্লেখ করেছি। উদাহারণ হিসেবে আমরা ব্লকের কথা উল্লেখ করছি। তবে এই ব্লকের পাশাপাশি এমন আরও কিছু ব্লক আছে যেগুলো আরও নানা ধরনের শর্তগুলো বিবেচনা করে প্রোগ্রামটি তৈরী করা যায়। কন্ডিশন বা শর্তের ব্লকগুলো ঘটনা (Events) এবং নিয়ন্ত্রণ (Control) অংশ থেকে পাওয়া যাবে।
আমাদের তৈরী স্ক্র্যাচের প্রথম প্রোগ্রামে আমরা একটি “গতি (Motion)” ব্লক ব্যবহার করেছিলাম। সেখানে আমরা যখন ব্লকটি ক্লিক করেছি তখন সেটি কিছুটা সামনের দিকে আগাচ্ছিল। এখন যদি আমরা আগের অনুচ্ছেদে শেখা সবুজ এবং লাল
পতাকার মাধ্যমে নিয়ন্ত্রণ করতে চাই তবে আমাদের “ঘটনা (Events)” অংশ থেকে আমাদের আগের Motion ব্লকটির সাথে নিচের ব্লকটি যুক্ত করতে হবে।
.png)
নতুন এই ব্লকটি যুক্ত করার পর আমরা সবুজ পতাকা বাটন ক্লিক করি, তাহলে আগের মত বিড়ালের স্প্রাইটটি কিছুটা আগাবে। এবার আমরা কোড ব্লকে ক্লিক না করে সরাসরি সবুজ পতাকা বাটনে ক্লিক করাতে প্রোগ্রামটি কাজ করছে।
স্ক্র্যাচের অন্যান্য ব্লকের থেকে এই ব্লকটির বিশেষ পার্থক্য রয়েছে। অন্যান্য ব্লকগুলোর যেমন আগে এবং পর উভয় দিকেই অন্যান্য ব্লক যুক্ত করার সুযোগ রয়েছে এই ব্লকে কেবলমাত্র নিচের দিকে ব্লক যুক্ত করার যাবে। এটি থেকে নিশ্চিত হওয়া যায় যে এটি হবে আমাদের স্ক্র্যাচ প্রোগ্রামের প্রথম ব্লক।
স্ক্র্যাচ প্রোগ্রামিং-এ ইফ-এলস (If-Else) ব্লকটি ব্যবহার করা হয় কোনো শর্তের উপর ভিত্তি করে দুটি ভিন্ন কাজ করানোর জন্য। সহজভাবে বললে, এটি এমন একটি ব্লক যা বলে—“যদি এটা হয়, তাহলে এই কাজটা করো, আর না হলে অন্য কাজটা করো।” উদাহরণস্বরূপ, যদি একটি স্প্রাইট মঞ্চের ডান প্রান্তে পৌঁছে যায়, তাহলে তাকে বাঁদিকে ফেরত পাঠাতে পারো; আর যদি না পৌঁছায়, তাহলে তাকে এগোতে বলো।
এই ব্লকটি ব্যবহার করে প্রজেক্টে লজিক বা যুক্তির ভিত্তিতে সিদ্ধান্ত যোগ করা যায়, যেটা একটি প্রোগ্রামকে আরও স্মার্ট করে তোলে। এই ধরনের ব্লক গেম, প্রশ্নোত্তর, বা ইন্টারঅ্যাকটিভ গল্প তৈরিতে খুবই কাজে লাগে। যেমন ধরো, তুমি একটি কুইজ বানাচ্ছো—যদি উত্তর সঠিক হয়, তাহলে বলবে "অভিনন্দন!", না হলে বলবে "আবার চেষ্টা করো!"। এমন সব কাজেই ইফ-এলস ব্লক খুব গুরুত্বপূর্ণ একটি অংশ।
Loop (লুপ)
আমরা একটি ব্লক ব্যবহার করে প্রথম প্রোগ্রামটি তৈরী করেছি। পরের ধাপে তার সাথে আমরা একটি শর্ত যুক্ত করেছি যেন আমরা সবুজ পতাকা বাটনে ক্লিক করার পর প্রোগ্রামটি চালু হয়।
এই প্রোগ্রামটি থেকে আমরা বিড়ালের স্প্রাইটকে এক ঘর সামনে এগিয়ে নিতে পারছি। তবে আমরা যদি চাই এমন একটি প্রোগ্রাম তৈরী করতে যেখানে প্রোগ্রামটি চালু করার পর স্প্রাইটটি ৩০০ ধাপ সামনে এগিয়ে যাবে। সেক্ষেত্রে সমাধান কি হতে পারে?
এই যুক্তি বা প্রোগ্রামিং সমস্যাটি কয়েকটি পদ্ধতিতে সমাধান করা যেতে পারে। প্রথম পদ্ধতি হলো আমরা Move (10) Steps ব্লকে 10 এর পরিবর্তে 300 লিখে দিতে পারি।

অপর পদ্ধতিটি হল Loop (লুপ) ব্যবহার করা। এই ক্ষেত্রে যদি আমাদের আগের Move (10) Steps ব্লক ব্যবহার করেই ৩০০ ধাপ এগিয়ে যেতে পারে। আমরা এখানে repeat (30) নামের একটি ব্লক ব্যবহার করেছি এবং এই ব্লকের মাঝে আগের move (10) steps ব্লক ব্যবহার করেছি। এখানে repeat (30) ব্লকটি হল লুপ ব্লক। এই ব্লকটির ভেতরে অপর যে ব্লক বা ব্লকগুলো যুক্ত করা হবে সেগুলো পর্যায়ক্রমে ঐ নির্ধারিত সংখ্যকভাবে কাজ করবে।
