Scratch Tutorial

স্বাগতম! তুমি যদি স্ক্র্যাচ (Scratch) শিখতে চাও, তবে এটি প্রোগ্রামিং শেখার জন্য বিশ্বের অন্যতম সেরা প্ল্যাটফর্ম। এটি মূলত ব্লক-ভিত্তিক কোডিং, যেখানে তোমাকে কোড টাইপ করতে হয় না, বরং ব্লকের টুকরোগুলো জোড়া লাগিয়ে প্রোগ্রাম তৈরি করতে হয়।

আমরা প্রতিদিন ধাপে ধাপে এটি শিখব।


প্রথম দিনের টিউটোরিয়াল: স্ক্র্যাচের সাথে পরিচিতি

আজকের লক্ষ্য হলো স্ক্র্যাচ প্ল্যাটফর্মটি কোথায় পাবে এবং এর ইন্টারফেসের কোন অংশ কী কাজ করে তা বোঝা।

১. কোথায় রান করবে? (The Platform)

স্ক্র্যাচ ব্যবহার করার দুটি উপায় আছে:

  • অনলাইন: সরাসরি scratch.mit.edu লিঙ্কে গিয়ে ব্রাউজারেই কোড করতে পারো।
  • অফলাইন: যদি ইন্টারনেট ছাড়া ব্যবহার করতে চাও, তবে ‘Scratch Desktop’ সফটওয়্যারটি ডাউনলোড করে কম্পিউটারে ইনস্টল করতে পারো।

২. স্ক্র্যাচ ইন্টারফেসের মূল অংশ

স্ক্র্যাচ খুললে তুমি ৪টি প্রধান অংশ দেখতে পাবে:

  • Stage (স্টেজ): ডানদিকের উপরের অংশ যেখানে তোমার তৈরি করা এনিমেশন বা গেমটি দেখা যায়। শুরুতে এখানে একটি বিড়াল (Sprite) থাকে।
  • Sprites (স্প্রাইট): স্টেজ-এর নিচে থাকে। তুমি যে ক্যারেক্টার বা অবজেক্ট নিয়ে কাজ করছ সেটিই হলো স্প্রাইট।
  • Blocks Palette (ব্লক প্যালেট): বামদিকের অংশ যেখানে বিভিন্ন রঙের কোড ব্লক থাকে (যেমন: Motion, Looks, Sound)।
  • Scripts Area (স্ক্রিপ্ট এরিয়া): মাঝখানের ফাঁকা জায়গা যেখানে ব্লকগুলোকে টেনে এনে (Drag and Drop) জোড়া লাগাতে হয়।

৩. আজকের হাতে-কলমে উদাহরণ (Practical Example)

চলো আজ আমরা ছোট একটি কোড তৈরি করি যাতে আমাদের বিড়ালটি ১০ ধাপ হাঁটবে এবং একটি শব্দ করবে।

ধাপগুলো অনুসরণ করো:

  1. Events (হলুদ রঙের) ক্যাটাগরিতে ক্লিক করো। সেখান থেকে when green flag clicked ব্লকটি টেনে মাঝখানের স্ক্রিপ্ট এরিয়াতে আনো।
  2. Motion (নীল রঙের) ক্যাটাগরিতে যাও। move 10 steps ব্লকটি টেনে এনে আগের ব্লকের ঠিক নিচে লাগিয়ে দাও।
  3. Sound (গোলাপী রঙের) ক্যাটাগরিতে যাও। play sound Meow until done ব্লকটি আগের দুটির নিচে যুক্ত করো।

ফলাফল:

এখন স্টেজের উপরের সবুজ পতাকা (Green Flag) আইকনে ক্লিক করো। দেখবে বিড়ালটি একটু এগিয়ে গিয়ে “মিউ” ডাক দিচ্ছে।


৪. আজকের টাস্ক (Daily Task)

  • স্ক্র্যাচ ওয়েবসাইটটি ভিজিট করো।
  • উপরের তিনটি ব্লক ব্যবহার করে বিড়ালটিকে মুভ করাও।
  • চেষ্টা করো move 10 steps-এর জায়গায় 50 লিখে দেখতে কী পরিবর্তন হয়।

স্বাগতম দ্বিতীয় দিনের টিউটোরিয়ালে!

গতকাল আমরা শিখেছিলাম কীভাবে স্ক্র্যাচ ইন্টারফেস কাজ করে এবং একটি ছোট ব্লক ব্যবহার করে বিড়ালটিকে (Sprite) নড়াচড়া করানো যায়। আজ আমরা শিখব কীভাবে Motion (গতি) এবং Control (নিয়ন্ত্রণ) ব্যবহার করে একটি স্প্রাইটকে বারবার নড়াচড়া করানো যায় এবং তাকে স্ক্রিনের এক প্রান্ত থেকে অন্য প্রান্তে নিয়ে যাওয়া যায়।


দ্বিতীয় দিন: লুপ (Loops) এবং বাউন্স (Bounce)

আজকের লক্ষ্য হলো বিড়ালটিকে এমনভাবে প্রোগ্রাম করা যাতে সে নিজে নিজেই স্ক্রিনের এপাশ থেকে ওপাশ হাঁটাহাঁটি করে।

১. প্রয়োজনীয় ব্লকসমূহ (Key Blocks)

আজ আমাদের নিচের ব্লকগুলো প্রয়োজন হবে:

  • Forever (ফরেভার): এটি ‘Control’ ক্যাটাগরির একটি ব্লক। এর ভেতরে যা রাখা হয়, তা বারবার (সারাজীবন) চলতে থাকে।
  • If on edge, bounce: এটি ‘Motion’ ক্যাটাগরির ব্লক। এর কাজ হলো স্প্রাইটটি যদি স্ক্রিনের দেয়ালে ধাক্কা খায়, তবে তাকে উল্টো দিকে ফিরিয়ে আনা।
  • Set rotation style left-right: এটিও ‘Motion’ ক্যাটাগরিতে থাকে। এটি বিড়ালটিকে উল্টে যাওয়া (মাথা নিচে পা উপরে) থেকে বাঁচায়।

২. আজকের প্রাকটিক্যাল উদাহরণ (Step-by-Step)

চলো একটি এনিমেশন তৈরি করি যেখানে বিড়ালটি একনাগাড়ে হাঁটবে:

  1. শুরু করা: প্রথমে Events থেকে when green flag clicked ব্লকটি নাও।
  2. লুপ যোগ করা: এবার Control ক্যাটাগরিতে যাও এবং forever ব্লকটি নিয়ে গ্রিন ফ্ল্যাগ ব্লকের নিচে জোড়া লাগিয়ে দাও।
  3. হাঁটানো: Motion থেকে move 10 steps ব্লকটি টেনে এনে forever ব্লকের পেটের ভেতরে ঢুকিয়ে দাও। (এখন ফ্ল্যাগ ক্লিক করলে দেখবে বিড়ালটি স্ক্রিনের বাইরে চলে যাচ্ছে)।
  4. ফিরে আসা: এবার Motion থেকে if on edge, bounce ব্লকটি নিয়ে move 10 steps-এর ঠিক নিচে (ফরেভার ব্লকের ভেতরেই) রাখো।
    • টিপস: এখন বিড়ালটি দেয়ালে ধাক্কা খেয়ে উল্টো হয়ে ফিরে আসবে।
  5. সোজা রাখা: বিড়ালটি যাতে উল্টো না হয়, সেজন্য Motion থেকে set rotation style left-right ব্লকটি একদম শুরুতে (ফ্ল্যাগ ব্লকের নিচে) একবার বসিয়ে দাও।

৩. আপনার ওয়েবসাইটের জন্য প্র্যাকটিস কোড (Code Structure)

আপনি যদি এটি আপনার সাইটে দিতে চান, তবে নিচের মতো করে কোডটি সাজাতে পারেন:

Code Logic:

  1. When Green Flag Clicked
  2. Set rotation style [left-right]
  3. Forever:
    • Move 10 steps
    • If on edge, bounce

৪. আজকের টাস্ক (Daily Task)

  • উপরের কোডটি স্ক্র্যাচ প্ল্যাটফর্মে রান করান।
  • move 10 steps-এর জায়গায় 20 বা 5 লিখে স্পিড পরিবর্তন করে দেখুন।
  • চ্যালেঞ্জ: Looks ক্যাটাগরি থেকে next costume ব্লকটি move 10 steps-এর নিচে লাগিয়ে দেখুন তো বিড়ালটি আসলেই হাঁটছে কি না (পা নাড়াচ্ছে কি না)!

স্বাগতম তৃতীয় দিনের টিউটোরিয়ালে! প্রথম দুই দিনে আমরা স্প্রাইটকে নড়াচড়া করতে এবং লুপ (Loop) ব্যবহার করতে শিখেছি। আজ আমরা আমাদের প্রজেক্টকে আরও সুন্দর করব।

আজকের মূল বিষয় হলো একাধিক স্প্রাইট (Multiple Sprites) ব্যবহার করা এবং ব্যাকড্রপ বা ব্যাকগ্রাউন্ড (Backdrop) পরিবর্তন করা।


তৃতীয় দিন: ব্যাকগ্রাউন্ড এবং একাধিক স্প্রাইটের বন্ধুত্ব

আজকের লক্ষ্য হলো একটি সুন্দর দৃশ্য তৈরি করা (যেমন একটি বাগান বা রাস্তা), যেখানে বিড়ালটি একা নয়, বরং তার সাথে অন্য কোনো বন্ধুও থাকবে।

১. নতুন কী শিখব? (New Concepts)

  • Choose a Backdrop: স্ক্রিনের নিচে ডানদিকের কোণায় ছবি আইকন থেকে সুন্দর একটি ব্যাকগ্রাউন্ড নেওয়া।
  • Choose a Sprite: বিড়াল ছাড়া অন্য কোনো ক্যারেক্টার (যেমন: কুকুর, বল বা পাখি) যুক্ত করা।
  • Say Block: Looks ক্যাটাগরি থেকে কথা বলার ব্লক ব্যবহার করা।

২. আজকের হাতে-কলমে প্রজেক্ট (Practical Task)

আমরা একটি দৃশ্য তৈরি করব যেখানে বিড়ালটি হাঁটতে হাঁটতে একটি বলকে দেখে “Hello!” বলবে।

ধাপগুলো অনুসরণ করো:

  1. ব্যাকগ্রাউন্ড সেট করা: স্ক্রিনের একদম নিচে ডানদিকের ‘Choose a Backdrop’ আইকনে ক্লিক করো। সেখান থেকে ‘Blue Sky’ বা ‘Boardwalk’ সিলেক্ট করো। দেখবে পেছনের সাদা অংশটি রঙিন হয়ে গেছে।
  2. নতুন বন্ধু আনা: ব্যাকড্রপ আইকনের পাশেই ‘Choose a Sprite’ আইকনে ক্লিক করো। সেখান থেকে একটি ‘Ball’ বা অন্য কোনো স্প্রাইট পছন্দ করো।
  3. কোড লেখা (Cat Sprite-এর জন্য):
    • Events থেকে when green flag clicked আনো।
    • Motion থেকে go to x: -180 y: -100 ব্লকটি দাও (যাতে বিড়ালটি সবসময় বাম দিক থেকে শুরু করে)।
    • Control থেকে repeat 20 (লুপ) ব্লকটি নাও।
    • তার ভেতরে Motion থেকে move 10 steps এবং Looks থেকে next costume দাও।
  4. কথা বলা: লুপের ঠিক নিচে (বাইরে) Looks থেকে say Hello! for 2 seconds ব্লকটি যুক্ত করো।

৩. আপনার ওয়েবসাইটের জন্য লজিক চার্ট (Website Content)

আপনি যদি এটি আপনার সাইটে দিতে চান, তবে নিচের মতো করে কোডটি সাজাতে পারেন:

ActionCategoryBlock Name
StartEventsWhen Green Flag Clicked
PositionMotionGo to x: -180 y: -100
AnimationControl / MotionRepeat 20 -> Move 10 steps
InteractionLooksSay "Hello!" for 2 seconds

৪. আজকের টাস্ক (Daily Task)

  • আপনার পছন্দমতো একটি ব্যাকগ্রাউন্ড (যেমন ‘Forest’ বা ‘Space’) যোগ করুন।
  • নতুন একটি স্প্রাইট (যেমন ডাইনোসর বা আপেল) যোগ করে সেটিকে স্ক্রিনের অন্য জায়গায় রাখুন।
  • চ্যালেঞ্জ: বিড়ালটি যখন কথা বলবে, তখন অন্য স্প্রাইটটিও যাতে উত্তর দেয় (say Hi!)—এমনভাবে কোড করার চেষ্টা করুন।
    • হিন্ট: দ্বিতীয় স্প্রাইটে গিয়ে wait 2 seconds ব্লকটি ব্যবহার করতে পারেন।

স্বাগতম চতুর্থ দিনের টিউটোরিয়ালে! প্রথম তিন দিনে আমরা অটোমেটিক এনিমেশন এবং লুপ শিখেছি। আজ আমরা শিখব কীভাবে ইউজার কন্ট্রোল (User Control) তৈরি করতে হয়।

অর্থাৎ, আজ বিড়ালটি নিজে নিজে হাঁটবে না, বরং আপনি কি-বোর্ডের Arrow Keys (তীর চিহ্ন) চাপলে সে আপনার কথা মতো চলবে। এটি একটি গেম তৈরির প্রথম ধাপ!


চতুর্থ দিন: কি-বোর্ড দিয়ে স্প্রাইট নিয়ন্ত্রণ

আজকের লক্ষ্য হলো কি-বোর্ডের ৪টি অ্যারো কী (Up, Down, Left, Right) ব্যবহার করে স্প্রাইটকে স্ক্রিনের যেকোনো দিকে চালানো।

১. প্রয়োজনীয় নতুন ব্লক (New Blocks)

আজ আমরা Events ক্যাটাগরির একটি বিশেষ ব্লক ব্যবহার করব:

  • When [space] key pressed: এই ব্লকের ড্রপডাউন থেকে আমরা Up arrow, Down arrow ইত্যাদি সিলেক্ট করতে পারি।
  • Change x by / Change y by: (Motion ক্যাটাগরি)
    • x পরিবর্তন করলে স্প্রাইট ডানে বা বামে যায়।
    • y পরিবর্তন করলে স্প্রাইট উপরে বা নিচে যায়।

২. আজকের হাতে-কলমে প্রজেক্ট (Practical Task)

নিচের ধাপগুলো অনুসরণ করে কোডটি সাজাও:

ডানে যাওয়ার জন্য (Right):

  1. Events থেকে when [right arrow] key pressed ব্লকটি নাও।
  2. তার নিচে Motion থেকে set rotation style [left-right] যুক্ত করো।
  3. তার নিচে Motion থেকে point in direction 90 দাও।
  4. সবশেষে Motion থেকে change x by 10 ব্লকটি লাগাও।

বামে যাওয়ার জন্য (Left):

  1. Events থেকে when [left arrow] key pressed ব্লকটি নাও।
  2. তার নিচে Motion থেকে point in direction -90 দাও।
  3. তার নিচে Motion থেকে change x by -10 (মনে রেখো, বামে যেতে হলে মাইনাস ১০ দিতে হয়)।

উপরে এবং নিচে যাওয়ার জন্য (Up & Down):

  • Up: when [up arrow] key pressed -> change y by 10
  • Down: when [down arrow] key pressed -> change y by -10

৩. লজিক টেবিল (আপনার ওয়েবসাইটের জন্য)

আপনার পাঠকদের জন্য এই টেবিলটি দিতে পারেন যা তাদের বুঝতে সাহায্য করবে:

Key PressedDirection (Point in)Movement (Change)
Right Arrow90°$x$ by 10
Left Arrow-90°$x$ by -10
Up Arrow$y$ by 10
Down Arrow180°$y$ by -10

৪. আজকের টাস্ক (Daily Task)

  • উপরের ৪টি কোড ব্লক তৈরি করো।
  • এবার কি-বোর্ডের অ্যারো কী চেপে বিড়ালটিকে পুরো স্ক্রিনে ঘুরিয়ে দেখো।
  • চ্যালেঞ্জ: প্রতিটি অ্যারো কী ব্লকের নিচে Looks থেকে next costume ব্লকটি যোগ করো। এতে মনে হবে বিড়ালটি সত্যিই হেঁটে যাচ্ছে।

স্বাগতম পঞ্চম দিনের টিউটোরিয়ালে! গত চার দিনে আমরা স্প্রাইটকে নড়াচড়া করতে এবং কি-বোর্ড দিয়ে নিয়ন্ত্রণ করতে শিখেছি। আজ আমরা শিখব প্রোগ্রামিংয়ের সবচেয়ে গুরুত্বপূর্ণ একটি অংশ: Conditions (শর্ত)

আজকের বিষয় হলো Sensing (অনুভব করা) এবং If-Then (যদি-তবে)। অর্থাৎ, স্প্রাইট যদি কোনো নির্দিষ্ট রঙ বা অন্য কোনো বস্তুকে স্পর্শ করে, তবে সে নিজে থেকেই কোনো কাজ করবে।


পঞ্চম দিন: শর্ত বা কন্ডিশন (If-Then Logic)

আজকের লক্ষ্য হলো একটি ছোট্ট গেমের মতো দৃশ্য তৈরি করা। বিড়ালটি যখন একটি নির্দিষ্ট বস্তুকে (যেমন একটি আপেল বা বল) স্পর্শ করবে, তখন সে একটি শব্দ করবে বা কোনো বার্তা দেবে।

১. প্রয়োজনীয় নতুন ব্লক (New Blocks)

  • If [ ] then: (Control ক্যাটাগরি) এটি একটি বিশেষ ব্লক যার ফাঁকা জায়গায় কোনো শর্ত বসাতে হয়।
  • Touching [Sprite/Color]?: (Sensing ক্যাটাগরি) এটি একটি নীল রঙের ডায়মন্ড শেপ ব্লক, যা কোনো কিছু স্পর্শ করছে কি না তা চেক করে।
  • Wait until: (Control ক্যাটাগরি) এটি কোনো ঘটনা ঘটা পর্যন্ত অপেক্ষা করে।

২. আজকের প্রাকটিক্যাল প্রজেক্ট (Step-by-Step)

আমরা এমন একটি প্রোগ্রাম বানাব যেখানে বিড়ালটি মাউস পয়েন্টার বা অন্য একটি স্প্রাইটকে টাচ করলে বলবে “Got it!”।

ধাপগুলো অনুসরণ করো:

  1. স্প্রাইট যোগ করো: বিড়াল (Sprite 1) ছাড়াও আরও একটি স্প্রাইট যোগ করো (যেমন: ‘Apple’)।
  2. বিড়ালের জন্য কোড (Cat Sprite):
    • Events থেকে when green flag clicked আনো।
    • তার নিচে Control থেকে forever ব্লকটি নাও (যাতে সে সারাক্ষণ চেক করে)।
    • forever-এর ভেতরে Control থেকে একটি if [ ] then ব্লক ঢুকাও।
    • এবার Sensing ক্যাটাগরি থেকে touching [Apple]? ব্লকটি টেনে এনে if-এর ছোট খাঁজটিতে বসিয়ে দাও।
  3. ফলাফল সেট করা: if-এর ভেতরে Looks থেকে say Got it! for 1 second ব্লকটি বসাও।
  4. শব্দ যোগ করা: চাইলে তার নিচেই Sound থেকে start sound Meow দিতে পারো।

৩. কোড লজিক (আপনার ওয়েবসাইটের জন্য)

আপনার পাঠকদের জন্য এই লজিকটি ব্যাখ্যা করতে পারেন:

Logic: > – IF (Cat is touching Apple)

  • THEN (Play Sound and Say “Got it!”)
  • ELSE (Keep moving)

৪. আজকের টাস্ক (Daily Task)

  • স্ক্রিনে একটি আপেল বা বল রাখুন।
  • চতুর্থ দিনের টিউটোরিয়াল ব্যবহার করে কি-বোর্ড দিয়ে বিড়ালটিকে নিয়ন্ত্রণ করুন।
  • বিড়ালটি যখন আপেলটিকে স্পর্শ করবে, তখন যেন আপেলটি অদৃশ্য হয়ে যায় (Looks থেকে hide ব্লক ব্যবহার করে দেখুন)।
  • চ্যালেঞ্জ: বিড়ালটি যখন আপেল টাচ করবে, তখন একটি ‘Score’ বা পয়েন্ট বাড়বে—এমন কিছু কি ভাবা যায়? (এটি আমরা আগামী সপ্তাহে শিখব!)

স্বাগতম ষষ্ঠ দিনের টিউটোরিয়ালে! গত ৫ দিনে আমরা স্ক্র্যাচের মুভমেন্ট, লুপ এবং কন্ডিশন শিখেছি। আজ আমরা শিখব একটি গেমের সবথেকে আকর্ষণীয় অংশ: Variables বা ভেরিয়েবল (স্কোর বোর্ড)

ভেরিয়েবল মানে হলো এমন একটি পাত্র, যেখানে আমরা কোনো তথ্য (যেমন: পয়েন্ট বা স্কোর) জমা রাখতে পারি এবং পরে তা পরিবর্তন করতে পারি।


ষষ্ঠ দিন: স্কোর বোর্ড (Variables) তৈরি করা

আজকের লক্ষ্য হলো আমাদের গতদিনের আপেল ধরার প্রজেক্টটিতে একটি ‘Score’ সিস্টেম যোগ করা। বিড়ালটি যতবার আপেল স্পর্শ করবে, আমাদের স্কোর তত বাড়বে।

১. নতুন কী শিখব? (New Concepts)

  • Make a Variable: ‘Variables’ ক্যাটাগরিতে গিয়ে নিজের নামে একটি ভেরিয়েবল তৈরি করা।
  • Change [Variable] by 1: এটি স্কোরের সাথে ১ যোগ করে।
  • Set [Variable] to 0: খেলা শুরু করার সময় স্কোর শূন্য (০) করার জন্য এটি ব্যবহৃত হয়।

২. আজকের প্রাকটিক্যাল প্রজেক্ট (Step-by-Step)

ধাপ ১: ভেরিয়েবল তৈরি করা

  1. বাম পাশের Variables (কমলা রঙ) ক্যাটাগরিতে ক্লিক করো।
  2. “Make a Variable” বাটনে ক্লিক করো।
  3. নাম দাও Score এবং ‘OK’ করো। এখন দেখবে স্টেজের উপরে ‘Score 0’ দেখা যাচ্ছে।

ধাপ ২: বিড়ালের জন্য কোড (Score Logic)

১ থেকে ৫ দিনের শিক্ষা ব্যবহার করে নিচের কোডটি সাজাও:

  1. when green flag clicked নাও।
  2. শুরুতে set [Score] to 0 ব্লকটি দাও (যাতে প্রতিবার গেম শুরুতে স্কোর শূন্য হয়)।
  3. একটি forever লুপ নাও।
  4. লুপের ভেতরে if <touching [Apple]?> then ব্লকটি বসাও।
  5. if-এর ভেতরে change [Score] by 1 ব্লকটি দাও।
  6. জরুরি টিপস: চেঞ্জ ব্লকের নিচে একটি wait 0.5 seconds ব্লক দাও, নাহলে একবার টাচ করলেই স্কোর অনেক দ্রুত বেড়ে যাবে!

৩. কোড লজিক (আপনার ওয়েবসাইটের জন্য)

আপনার পাঠকরা এই টেবিলটি দেখে সহজে বুঝতে পারবে:

উদ্দেশ্যব্যবহৃত ব্লকক্যাটাগরি
খেলা শুরুwhen green flag clickedEvents
স্কোর রিসেট করাset Score to 0Variables
আপেল টাচ করলেif touching Apple?Sensing
স্কোর বাড়ানোchange Score by 1Variables

৪. আজকের টাস্ক (Daily Task)

  • একটি স্কোর বোর্ড তৈরি করো।
  • আপেলটি যাতে স্ক্রিনের বিভিন্ন জায়গায় নিজে নিজে চলে যায়, সেজন্য আপেলের কোডে forever লুপের ভেতরে go to random position এবং wait 1 seconds ব্লক ব্যবহার করো।
  • চ্যালেঞ্জ: বিড়ালটি আপেল টাচ করলে স্কোর ১ করে বাড়বে, কিন্তু যদি অন্য কোনো স্প্রাইট (যেমন: বজ্রপাত বা কাঁকড়া) টাচ করে তবে স্কোর ১ করে কমবে (change Score by -1)—এমন একটি সিস্টেম তৈরি করো।

স্বাগতম সপ্তম দিনের টিউটোরিয়ালে! গত ছয় দিনে আমরা স্ক্র্যাচের প্রায় সব মৌলিক বিষয় (মুভমেন্ট, লুপ, কন্ডিশন এবং ভেরিয়েবল) শিখে ফেলেছি। আজ আমরা শিখব একটি অ্যাডভান্সড ফিচার: Broadcasting (বার্তা আদান-প্রদান)

সহজ কথায়, ব্রডকাস্টিং হলো যখন একটি স্প্রাইট অন্য স্প্রাইটকে কোনো সিগন্যাল বা মেসেজ পাঠায় যাতে সে কোনো কাজ শুরু করতে পারে। যেমন: “গেম শেষ, এখন তোমরা সবাই অদৃশ্য হয়ে যাও!”


সপ্তম দিন: মেসেজ পাঠানো ও গেম ওভার (Broadcasting)

আজকের লক্ষ্য হলো একটি ‘Game Over’ সিস্টেম তৈরি করা। যখন স্কোর একটি নির্দিষ্ট সংখ্যায় পৌঁছাবে (যেমন ৫), বিড়ালটি একটি মেসেজ পাঠাবে এবং স্ক্রিনে “Game Over” লেখা ভেসে উঠবে।

১. নতুন কী শিখব? (New Concepts)

  • Broadcast [message]: (Events ক্যাটাগরি) এটি একটি অদৃশ্য সিগন্যাল পাঠায়।
  • When I receive [message]: এটি সেই সিগন্যালটি গ্রহণ করে কাজ শুরু করে।
  • Stop all: (Control ক্যাটাগরি) এটি গেমের সমস্ত কোড একসাথে বন্ধ করে দেয়।

২. আজকের প্রাকটিক্যাল প্রজেক্ট (Step-by-Step)

ধাপ ১: ‘Game Over’ স্প্রাইট তৈরি করা

  1. ‘Choose a Sprite’ থেকে একটি টেক্সট স্প্রাইট নাও অথবা ‘Paint’ অপশনে গিয়ে বড় করে লাল রঙে লেখো: GAME OVER
  2. কোড উইন্ডোতে গিয়ে এই স্প্রাইটের জন্য লেখো:
    • when green flag clicked -> hide (শুরুতে এটি লুকিয়ে থাকবে)।

ধাপ ২: বিড়ালের মাধ্যমে মেসেজ পাঠানো (Broadcasting)

বিড়ালের পুরনো কোডের (যেখানে স্কোর বাড়িয়েছিলে) ভেতরে এই অংশটি যোগ করো:

  1. if <Score = 5> then (Operators থেকে = ব্লকটি নাও)।
  2. তার ভেতরে broadcast [message1] দাও। (মেসেজের নাম দিতে পারো “game over”)।

ধাপ ৩: মেসেজ গ্রহণ করা

এখন আবার সেই ‘Game Over’ টেক্সট স্প্রাইটে ফিরে যাও এবং নিচের কোডটি লেখো:

  1. when I receive [game over]
  2. show (এখন লেখাটি দেখা যাবে)।
  3. stop all (পুরো গেমটি থেমে যাবে)।

৩. আপনার ওয়েবসাইটের জন্য ফ্লোচার্ট (Logic Flow)

আপনার পাঠকদের বোঝানোর জন্য এই ধাপগুলো দিতে পারেন:

গেমের লজিক ফ্লো:

  1. বিড়াল আপেল স্পর্শ করে -> স্কোর বাড়ে।
  2. স্কোর ৫ হয় -> বিড়াল একটি “Game Over” সিগন্যাল পাঠায়।
  3. টেক্সট স্প্রাইট সিগন্যাল পায় -> স্ক্রিনে ভেসে ওঠে এবং সব থামিয়ে দেয়।

৪. আজকের টাস্ক (Daily Task)

  • একটি ‘Game Over’ মেসেজ সিস্টেম তৈরি করো।
  • চ্যালেঞ্জ ১: গেম শুরু হওয়ার সময় একটি “Start” বাটন তৈরি করো, যা ক্লিক করলে গেমের মূল এনিমেশন শুরু হবে (ব্রডকাস্টিং ব্যবহার করে)।
  • চ্যালেঞ্জ ২: একটি ব্যাকগ্রাউন্ড পরিবর্তন করো। গেম ওভার হওয়ার সাথে সাথে ব্যাকড্রপ যাতে ‘Night’ বা ‘Woods’ হয়ে যায়।

অভিনন্দন! আপনি স্ক্র্যাচ শেখার প্রথম সপ্তাহটি সফলভাবে পার করেছেন। গত ৭ দিনে আমরা স্ক্র্যাচের সব গুরুত্বপূর্ণ বেসিক (নড়াচড়া, লুপ, কন্ডিশন, ভেরিয়েবল এবং ব্রডকাস্ট) শিখেছি।

আজ অষ্টম দিনে আমরা নতুন কিছু শেখার বদলে আগের সব জ্ঞান ব্যবহার করে আমাদের প্রথম পূর্ণাঙ্গ গেম তৈরি করব: “ক্ষুধার্থ বিড়াল ও ইঁদুর” (Hungry Cat & Mouse Game)


অষ্টম দিন: আপনার প্রথম পূর্ণাঙ্গ গেম তৈরি

আজকের লক্ষ্য হলো একটি গেম বানানো যেখানে বিড়ালটি ইঁদুরকে তাড়া করবে। বিড়ালটি ইঁদুর ধরলে পয়েন্ট বাড়বে, কিন্তু যদি সে কোনো বাধা (যেমন: একটি কুকুর বা কাঁকড়া) স্পর্শ করে, তবে গেম ওভার হবে।

১. গেমের সেটাআপ (Setup)

  • Backdrop: একটি সুন্দর ব্যাকগ্রাউন্ড নাও (যেমন: ‘Garden’ বা ‘Forest’)।
  • Sprites: তিনটি স্প্রাইট নাও—
    1. Cat (যাকে আপনি নিয়ন্ত্রণ করবেন)।
    2. Mouse (যেটি র্যান্ডমলি ঘুরবে)।
    3. Beetle/Crab (শত্রু, যাকে টাচ করলে গেম শেষ হবে)।

২. কোডিং গাইড (Step-by-Step)

বিড়ালের কোড (Player Control):

চতুর্থ দিনের শিক্ষা অনুযায়ী অ্যারো কী ব্যবহার করে কোডটি লিখুন যাতে বিড়ালটি চারদিকে ঘুরতে পারে।

টিপস: বিড়ালের স্পিড change x/y by 10 এর জায়গায় 15 দিলে গেমটি আরও দ্রুত হবে।

ইঁদুরের কোড (The Target):

ইঁদুরটি যাতে নিজে নিজে স্ক্রিনে এদিক-সেদিক চলে:

  1. when green flag clicked
  2. forever লুপ নাও।
  3. ভেতরে glide 1 secs to random position ব্লকটি দাও। (এটি ইঁদুরকে মসৃণভাবে নড়াচড়া করাবে)।

স্কোর ও কন্ডিশন (The Logic):

বিড়ালের স্ক্রিপ্টে এই অংশটি যোগ করো:

  • if <touching Mouse?> then
    • change Score by 1
    • start sound Pop
    • broadcast [Reset Mouse] (ইঁদুরটি যাতে অন্য জায়গায় চলে যায়)।

শত্রু ও গেম ওভার (The Challenge):

শত্রু স্প্রাইটে (Beetle) এই কোডটি দাও:

  • if <touching Cat?> then
    • say Game Over! for 2 seconds
    • stop all

৩. আপনার ওয়েবসাইটের জন্য গেম ডিজাইন চার্ট

আপনার পাঠকদের জন্য এই স্ট্রাকচারটি ফলো করতে বলতে পারেন:

চরিত্র (Sprite)মূল কাজ (Main Action)চ্যালেঞ্জ (Challenge)
বিড়ালকি-বোর্ড দিয়ে নিয়ন্ত্রণশত্রুকে এড়িয়ে চলা
ইঁদুরর্যান্ডমলি মুভ করাবিড়ালকে পয়েন্ট দেওয়া
শত্রু (Beetle)স্ক্রিনে ঘুরে বেড়ানোটাচ করলেই গেম শেষ

৪. আজকের টাস্ক (Daily Task)

  • এই পূর্ণাঙ্গ গেমটি স্ক্র্যাচ প্ল্যাটফর্মে তৈরি করুন।
  • চ্যালেঞ্জ ১: ইঁদুরটি যখন বিড়ালকে টাচ করবে, সেটি যাতে অদৃশ্য হয়ে অন্য কোথাও গিয়ে আবার দেখা দেয়।
  • চ্যালেঞ্জ ২: একটি ‘High Score’ ভেরিয়েবল যোগ করার চেষ্টা করুন।
  • চ্যালেঞ্জ ৩: গেমটিতে ব্যাকগ্রাউন্ড মিউজিক যোগ করুন (Sound ক্যাটাগরি থেকে play sound until done ব্যবহার করে)।

স্বাগতম নবম দিনের টিউটোরিয়ালে! গতকাল আমরা আমাদের প্রথম গেম তৈরি করেছি। আজ আমরা শিখব কীভাবে সেই গেমটিকে আরও প্রফেশনাল করা যায়। আজকের বিষয় হলো Levels (লেভেল) এবং Timer (সময়) যোগ করা।

একটি গেমে লেভেল থাকলে সেটি খেলতে আরও মজা লাগে, আর টাইমার থাকলে প্লেয়ারের মধ্যে একটি চ্যালেঞ্জ তৈরি হয়।


নবম দিন: লেভেল এবং টাইমার যোগ করা

আজকের লক্ষ্য হলো: স্কোর ৫ হলে ব্যাকগ্রাউন্ড পরিবর্তন হয়ে ‘Level 2’ হবে এবং একটি নির্দিষ্ট সময়ের মধ্যে গেমটি শেষ করতে হবে।

১. নতুন কী শিখব? (New Concepts)

  • Timer: স্ক্র্যাচের ভেতরে বিল্ট-ইন টাইমার থাকে, তবে আমরা ভেরিয়েবল দিয়ে নিজের টাইমার তৈরি করব।
  • Next Backdrop: লেভেল পরিবর্তনের জন্য ব্যাকগ্রাউন্ড বদলানো।
  • Operators (Greater than): স্কোর একটি নির্দিষ্ট সংখ্যার বেশি হলে কী হবে তা ঠিক করা।

২. আজকের প্রাকটিক্যাল প্রজেক্ট (Step-by-Step)

অংশ ১: টাইমার (Timer) তৈরি করা

১. Variables-এ গিয়ে Time নামে একটি নতুন ভেরিয়েবল তৈরি করো।

২. স্টেজের যেকোনো জায়গায় (বা ব্যাকড্রপ-এ) এই কোডটি লেখো:

  • when green flag clicked
  • set [Time] to 30 (৩০ সেকেন্ড সময় দিতে চাইলে)।
  • forever লুপ নাও।
    • wait 1 seconds
    • change [Time] by -1
    • if <Time = 0> then
      • broadcast [Game Over]
      • stop all

অংশ ২: লেভেল (Level) পরিবর্তন করা

আমরা চাই স্কোর ৫ পার হলে ব্যাকগ্রাউন্ড বদলে যাবে এবং গেমটি একটু কঠিন হবে।

১. দুটি ভিন্ন ব্যাকগ্রাউন্ড পছন্দ করো (যেমন: ‘Woods’ এবং ‘Desert’)।

২. ব্যাকড্রপ বা বিড়ালের কোডে এটি লেখো:

  • when green flag clicked
  • switch backdrop to [Woods]
  • wait until <Score > 5>
  • switch backdrop to [Desert]
  • broadcast [Level 2]

৩. আপনার ওয়েবসাইটের জন্য লজিক চার্ট (Logic Chart)

আপনার পাঠকদের জন্য এই ধাপগুলো দিতে পারেন:

ফিচার (Feature)লজিক (Logic)ফলাফল (Result)
টাইমারপ্রতি ১ সেকেন্ডে -১ করা০ হলে গেম শেষ
লেভেল ১যখন স্কোর ০ থেকে ৫সহজ ব্যাকগ্রাউন্ড
লেভেল ২যখন স্কোর > ৫ব্যাকগ্রাউন্ড পরিবর্তন ও কঠিন মুভমেন্ট

৪. আজকের টাস্ক (Daily Task)

  • আপনার গেমে একটি ৩০ সেকেন্ডের কাউন্টডাউন টাইমার যোগ করুন।
  • স্কোর ৫ হয়ে গেলে ব্যাকগ্রাউন্ড পরিবর্তন করুন।
  • চাঁলেঞ্জ (Level 2 Difficulty): লেভেল ২ শুরু হলে শত্রুর (Beetle) গতি বাড়িয়ে দিন।
    • হিন্ট: when I receive [Level 2] -> forever -> move 15 steps.

স্বাগতম দশম দিনের টিউটোরিয়ালে! আমরা এখন স্ক্র্যাচ প্রোগ্রামিংয়ের বেশ গভীরে পৌঁছে গেছি। গত কয়েক দিনে আমরা গেমের লেভেল এবং টাইমার তৈরি করা শিখেছি। আজ আমরা শিখব কীভাবে গেমটিকে আরও আকর্ষণীয় করার জন্য Winning Screen (বিজয়ী পর্দা) এবং Background Music (শব্দ নিয়ন্ত্রণ) যোগ করা যায়।

গেমটি হারলে যেমন “Game Over” দেখা যায়, তেমনি জিতলে একটি সুন্দর “You Win!” মেসেজ আসা জরুরি।


দশম দিন: বিজয়ী পর্দা এবং সাউন্ড ইফেক্টস

আজকের লক্ষ্য হলো: যদি প্লেয়ার সময়ের আগে নির্দিষ্ট স্কোর (যেমন ১০) করতে পারে, তবে একটি জয়ের বার্তা আসবে এবং ব্যাকগ্রাউন্ডে একটি আনন্দের মিউজিক বাজবে।

১. নতুন কী শিখব? (New Concepts)

  • Sound Volume: মিউজিকের ভলিউম কমানো বা বাড়ানো।
  • Wait Until: একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত প্রোগ্রামকে থামিয়ে রাখা।
  • Multiple Backdrops for States: গেমের বিভিন্ন অবস্থার জন্য আলাদা ব্যাকগ্রাউন্ড ব্যবহার।

২. আজকের প্রাকটিক্যাল প্রজেক্ট (Step-by-Step)

অংশ ১: “You Win!” স্প্রাইট তৈরি

১. ‘Paint’ অপশনে গিয়ে বড় করে নীল বা সবুজ রঙে লেখো: YOU WIN!

২. এই স্প্রাইটের কোড হবে:

  • when green flag clicked -> hide
  • when I receive [win] -> show, play sound [Celebrate], stop all

অংশ ২: জেতার লজিক (Winning Logic)

আপনার মূল স্প্রাইট (বিড়াল) বা ব্যাকড্রপ-এ এই কোডটি যোগ করুন:

১. when green flag clicked

২. wait until <Score = 10>

৩. broadcast [win]

অংশ ৩: ব্যাকগ্রাউন্ড মিউজিক (Background Music)

গেম চলাকালীন হালকা মিউজিক বাজানোর জন্য:

১. ব্যাকড্রপ-এ যান এবং Sound ট্যাব থেকে একটি লুপ মিউজিক (যেমন ‘Video Game 1’) পছন্দ করুন।

২. কোড লিখুন:

  • when green flag clicked
  • set volume to 50% (যাতে খুব জোরে না বাজে)
  • forever -> play sound [Music] until done

৩. আপনার ওয়েবসাইটের জন্য প্রফেশনাল টিপস

পাঠকদের জন্য এই চেকিলিস্টটি দিতে পারেন:

গেমটিকে সুন্দর করার ৩টি উপায়:

  1. ভলিউম কন্ট্রোল: গেমের শুরুতে set volume ব্যবহার করে সাউন্ড ঠিক রাখা।
  2. ভিজ্যুয়াল ফিডব্যাক: জিতলে স্প্রাইটের আকার বড় করা (change size by 10) বা রঙ পরিবর্তন করা।
  3. সাউন্ড ক্ল্যারিটি: জেতার সময় ব্যাকগ্রাউন্ড মিউজিক থামিয়ে দিয়ে জয়ের মিউজিক বাজানো।

৪. আজকের টাস্ক (Daily Task)

  • একটি “You Win!” স্প্রাইট বা ব্যাকগ্রাউন্ড তৈরি করুন।
  • স্কোর ১০ হলে গেমটি জিতে যাওয়ার সিস্টেম তৈরি করুন।
  • চ্যালেঞ্জ: গেম জেতার পর বিড়ালটি যেন একটি আনন্দ নাচে (Dance) মেতে ওঠে!
    • হিন্ট: repeat 10 -> turn 36 degrees -> wait 0.1 seconds.

Table of Contents

Index