Logo ভাষায় অ্যানিমেশন তৈরি করা একটি অত্যন্ত রুচিশীল এবং শিক্ষামূলক প্রক্রিয়া, যা শিক্ষার্থীদের প্রোগ্রামিং শেখাতে সাহায্য করে। Logo ভাষায় অ্যানিমেশন তৈরি করতে আমরা সাধারণত টার্টল গ্রাফিক্স (Turtle Graphics) ব্যবহার করি এবং REPEAT, CLEARSCREEN, WAIT ইত্যাদি কমান্ডের মাধ্যমে গতিশীল অ্যানিমেশন তৈরি করা হয়। এখানে Recursion, Loops, এবং Time Delay ব্যবহার করে আমরা একটি সুন্দর অ্যানিমেশন তৈরি করতে পারি।
নিচে কিছু উদাহরণসহ Logo ভাষায় অ্যানিমেশন তৈরি করার পদ্ধতি দেওয়া হলো।
1. Basic Animation with Movement (মুভমেন্ট অ্যানিমেশন)
এটি একটি সাধারণ উদাহরণ যেখানে টার্টলটি একটি সরল লাইন আঁকবে এবং তার পরে স্ক্রীনে কিছু সময়ের জন্য অপেক্ষা করবে, তারপর লাইনটি পুনরায় আঁকবে।
কোড:
TO simpleAnimation :size
REPEAT 50 [
CLEARSCREEN ; স্ক্রীন পরিষ্কার করবে
FORWARD :size ; নির্দিষ্ট দৈর্ঘ্য এগিয়ে যাবে
RIGHT 5 ; ৫ ডিগ্রী ডান দিকে ঘুরবে
WAIT 10 ; ১০ মিলিসেকেন্ড অপেক্ষা করবে
]
END
simpleAnimation 100 ; Animation ফাংশন কলএখানে:
- CLEARSCREEN: স্ক্রীন পরিষ্কার করবে।
- FORWARD: টার্টলকে সরিয়ে নেবে।
- RIGHT: টার্টলকে ডান দিকে ঘুরাবে।
- WAIT: কিছু সময় অপেক্ষা করবে (এটা অ্যানিমেশন ইফেক্ট তৈরি করবে)।
2. Bouncing Ball Animation (বাউন্সিং বল অ্যানিমেশন)
এটি একটি বাউন্সিং বলের অ্যানিমেশন যেখানে বলটি স্ক্রীনের উপর থেকে নিচে ও উপরে চলাচল করবে।
কোড:
TO bouncingBall :size
MAKE "y 0
REPEAT 200 [
CLEARSCREEN
SETHEADING 90 ; বলের দিক নির্ধারণ
FORWARD :y ; বলকে সামনে এগিয়ে নিয়ে যাবে
SETCOLOR "red ; বলের রঙ লাল
PENDOWN
CIRCLE :size ; বল আঁকবে
PENUP
WAIT 20 ; কিছু সময় অপেক্ষা করবে
MAKE "y :y + 10 ; বলটি উপরের দিকে উঠতে থাকবে
IF :y > 100 [MAKE "y -100] ; বল যদি স্ক্রীন এর সীমা পার করে, তবে নিচে নামবে
]
END
bouncingBall 10 ; অ্যানিমেশন ফাংশন কলএখানে:
- SETHEADING 90: বলের দিক নির্ধারণ করতে ব্যবহৃত হয় (এটি টার্টলকে উল্লম্বভাবে চালনা করবে)।
- CIRCLE: বল আঁকবে।
- WAIT 20: অ্যানিমেশনে বিলম্ব যোগ করবে।
3. Spinning Square Animation (স্পিনিং স্কয়ার অ্যানিমেশন)
এটি একটি স্কয়ারের অ্যানিমেশন যেখানে স্কয়ারটি ঘুরে যাবে।
কোড:
TO spinningSquare :size
REPEAT 72 [
CLEARSCREEN ; স্ক্রীন পরিষ্কার করবে
REPEAT 4 [
FORWARD :size ; স্কয়ার আঁকবে
RIGHT 90 ; ৯০ ডিগ্রী ডানদিকে ঘুরবে
]
RIGHT 5 ; স্কয়ারের অবস্থান পরিবর্তন করবে
WAIT 20 ; কিছু সময় অপেক্ষা করবে
]
END
spinningSquare 100 ; অ্যানিমেশন ফাংশন কলএখানে:
- REPEAT 72: স্কয়ারটি ৭২ বার পুনরাবৃত্তি হবে।
- RIGHT 90: স্কয়ারের ৪টি কোণ আঁকবে।
- RIGHT 5: প্রতি ধাপে স্কয়ারটি কিছুটা ঘুরবে।
4. Moving Spiral Animation (স্পাইরাল মুভমেন্ট অ্যানিমেশন)
এটি একটি স্পাইরাল ডিজাইন তৈরি করার অ্যানিমেশন, যেখানে স্পাইরালটি ক্রমাগত বড় হবে।
কোড:
TO spiral :size
REPEAT 100 [
FORWARD :size
RIGHT 15
MAKE "size :size + 2 ; আকার বাড়ানো হবে
WAIT 5 ; কিছু সময় অপেক্ষা করবে
]
END
spiral 5 ; স্পাইরাল অ্যানিমেশন ফাংশন কলএখানে:
- FORWARD :size: স্পাইরালটির প্রস্থ বা দৈর্ঘ্য।
- RIGHT 15: স্পাইরালটির কোণ বা ভিন্ন ভিন্ন আঙ্গুলে ঘূর্ণন।
- MAKE "size :size + 2: স্পাইরালটির আকার ধীরে ধীরে বাড়ানো হবে।
5. Rotating Shapes Animation (রোটেটিং শেপ অ্যানিমেশন)
এটি একটি অ্যানিমেশন যেখানে টার্টল একটি নির্দিষ্ট আকৃতি (যেমন ত্রিভুজ) আঁকবে এবং তারপরে এটি ঘুরতে থাকবে।
কোড:
TO rotatingShape :size
REPEAT 36 [
REPEAT 3 [FORWARD :size RIGHT 120] ; ত্রিভুজ আঁকবে
RIGHT 10 ; প্রতি পেটার্নের পর ১০ ডিগ্রী ঘুরবে
]
END
rotatingShape 50 ; রোটেটিং শেপ অ্যানিমেশন ফাংশন কলএখানে:
- REPEAT 3: একটি ত্রিভুজ আঁকবে (৩টি সাইড)।
- RIGHT 10: প্রতি পেটার্নের পর শেপটি ১০ ডিগ্রী ঘুরে যাবে।
সারসংক্ষেপ:
Logo ভাষায় অ্যানিমেশন তৈরি করার জন্য Recursion, Loops, এবং WAIT কমান্ড ব্যবহার করা হয়। আপনি Turtle Graphics ব্যবহার করে মুভমেন্ট, ঘূর্ণন, আকার বৃদ্ধি ইত্যাদি অ্যানিমেশন তৈরি করতে পারেন। এই ধরনের অ্যানিমেশন শিক্ষার্থীদের প্রোগ্রামিংয়ের মৌলিক ধারণাগুলি শেখাতে সাহায্য করে এবং এটি খুবই আকর্ষণীয় হতে পারে। Fractal Designs, Spirals, এবং Rotating Shapes এর মতো অ্যানিমেশনগুলো Logo-তে বাস্তবায়ন করা যায়, যা প্রোগ্রামিংয়ে সৃজনশীলতার বিকাশ ঘটায়।
Turtle Graphics Logo ভাষায় গ্রাফিক্স এবং অ্যানিমেশন তৈরি করার একটি শক্তিশালী উপায়। Turtle Graphics মূলত একটি পয়েন্ট বা "টার্টল" ব্যবহার করে গ্রাফিক্যাল আউটপুট তৈরি করে, যেখানে এটি নির্দিষ্ট নির্দেশনা অনুসারে চলতে থাকে এবং বিভিন্ন আকৃতি আঁকে। অ্যানিমেশন তৈরি করার জন্য আমরা পুনরাবৃত্তি (recursion) বা লুপ (loop) ব্যবহার করতে পারি, যাতে একাধিক অবস্থানে টার্টলকে দ্রুত বা ধীরে চলতে দেওয়া হয় এবং তা অ্যানিমেশন সৃষ্টি করে।
নিচে Turtle Graphics ব্যবহার করে অ্যানিমেশন তৈরি করার কিছু উদাহরণ দেওয়া হলো:
১. Moving Circle Animation (চলন্ত বৃত্ত অ্যানিমেশন)
এটি একটি সাধারণ উদাহরণ যেখানে একটি বৃত্ত তৈরি হবে এবং টার্টল সেটি পরপর আঁকবে, যা চলন্ত বৃত্তের মতো দেখাবে।
কোড:
TO movingCircle :radius
REPEAT 36 [ ; ৩৬ বার পুনরাবৃত্তি হবে
CLEARSCREEN ; স্ক্রীন পরিষ্কার করবে প্রতিবার
CIRCLE :radius ; একটি বৃত্ত আঁকবে
RIGHT 10 ; ১০ ডিগ্রী ঘুরে পরবর্তী অবস্থান নির্ধারণ করবে
]
END
movingCircle 50 ; ৫০ পিক্সেল রেডিয়াস দিয়ে বৃত্ত আঁকার জন্য ফাংশন কলএখানে:
- REPEAT 36: ৩৬টি সেকেন্ডে এটি একটি পূর্ণ বৃত্ত আঁকবে, ১০ ডিগ্রী করে ঘুরে টার্টল পরবর্তী অবস্থানে পৌঁছাবে।
- CLEARSCREEN: এটি প্রতিবার স্ক্রীন পরিষ্কার করে যাতে আগের অবস্থান দৃশ্যমান না থাকে, এবং নতুন অবস্থানে অ্যানিমেশন চলতে থাকে।
২. Moving Square Animation (চলন্ত বর্গ অ্যানিমেশন)
এটি একটি উদাহরণ যেখানে একটি বর্গ (square) এক জায়গা থেকে অন্য জায়গায় চলবে।
কোড:
TO movingSquare :size
REPEAT 50 [
CLEARSCREEN ; স্ক্রীন পরিষ্কার করবে
REPEAT 4 [
FORWARD :size ; বর্গ আঁকার জন্য ৪টি সাইড এগিয়ে যাবে
RIGHT 90
]
FORWARD 5 ; বর্গের পরবর্তী অবস্থানে যাওয়ার জন্য ৫ পিক্সেল এগিয়ে যাবে
]
END
movingSquare 50 ; ৫০ পিক্সেল সাইড দৈর্ঘ্য দিয়ে বর্গ আঁকার জন্য ফাংশন কলএখানে:
- REPEAT 50: ৫০ বার এই কোডটি পুনরাবৃত্তি হবে, যা একটি চলন্ত বর্গ তৈরি করবে।
- FORWARD 5: টার্টল প্রতি ধাপে ৫ পিক্সেল এগিয়ে যাবে, যাতে বর্গটি পরপর এগিয়ে চলে এবং একটি চলন্ত অ্যানিমেশন তৈরি হয়।
৩. Rotating Star Animation (ঘুরন্ত তারা অ্যানিমেশন)
এটি একটি উদাহরণ যেখানে একটি তারা তৈরি হবে এবং প্রতিবার ঘুরে অবস্থান পরিবর্তন করবে, যার ফলে একটি ঘুরন্ত তারা অ্যানিমেশন তৈরি হবে।
কোড:
TO rotatingStar :size
REPEAT 36 [
REPEAT 5 [
FORWARD :size ; তারা আঁকার জন্য সাইড এগিয়ে যাবে
RIGHT 144 ; ১৪৪ ডিগ্রী ঘুরবে
]
RIGHT 10 ; পরবর্তী অবস্থানে যাওয়ার জন্য ১০ ডিগ্রী ঘুরবে
]
END
rotatingStar 100 ; ১০০ পিক্সেল সাইড দৈর্ঘ্য দিয়ে তারা আঁকার জন্য ফাংশন কলএখানে:
- REPEAT 36: ৩৬ বার এটি একটি পূর্ণ ঘুরন্ত তারা তৈরি করবে।
- RIGHT 144: ৫ পয়েন্টের তারা আঁকার জন্য টার্টলকে ১৪৪ ডিগ্রী ঘুরানো হবে।
- RIGHT 10: এটি টার্টলকে ১০ ডিগ্রী ঘুরিয়ে পরবর্তী পয়েন্টে নিয়ে যাবে, ফলে পুরো অ্যানিমেশন ঘুরন্ত তারা তৈরি করবে।
৪. Moving Spiral Animation (চলন্ত স্পাইরাল অ্যানিমেশন)
এটি একটি উদাহরণ যেখানে একটি স্পাইরাল আঁকা হবে এবং প্রতিবার আকার ছোট হতে থাকবে, যা একটি চলন্ত স্পাইরাল অ্যানিমেশন তৈরি করবে।
কোড:
TO movingSpiral :size
REPEAT 100 [
FORWARD :size
RIGHT 15
:size = :size + 2 ; আকার বাড়াতে থাকবে
]
END
movingSpiral 1 ; ১ পিক্সেল দিয়ে স্পাইরাল আঁকার জন্য ফাংশন কলএখানে:
- REPEAT 100: ১০০ বার এটি স্পাইরাল আঁকার জন্য পুনরাবৃত্তি হবে।
- FORWARD :size: প্রতিবার স্পাইরালটির আকার বাড়ানো হবে।
- RIGHT 15: এটি প্রতিটি স্টেপে ১৫ ডিগ্রী ডান দিকে ঘুরিয়ে স্পাইরাল তৈরি করবে।
5. Color Changing Animation (রঙ পরিবর্তনকারী অ্যানিমেশন)
এটি একটি উদাহরণ যেখানে অ্যানিমেশন চলার সময় টার্টলের পেনের রঙ পরিবর্তন হবে।
কোড:
TO colorChangingAnimation
REPEAT 100 [
SETCOLOR (RANDOM 255) (RANDOM 255) (RANDOM 255) ; র্যান্ডম রঙ সেট করা
FORWARD 50
RIGHT 45
]
END
colorChangingAnimationএখানে:
- SETCOLOR (RANDOM 255) (RANDOM 255) (RANDOM 255): এটি র্যান্ডম রঙ তৈরি করে এবং প্রতিটি লাইন আঁকার জন্য রঙ পরিবর্তন করবে।
- FORWARD 50: ৫০ পিক্সেল এগিয়ে যাবে, এবং RIGHT 45: প্রতি স্টেপে ৪৫ ডিগ্রী ডান দিকে ঘুরবে।
সারসংক্ষেপ:
Turtle Graphics ব্যবহার করে আপনি Logo ভাষায় সহজেই বিভিন্ন অ্যানিমেশন তৈরি করতে পারেন। Recursion, REPEAT, RIGHT, এবং SETCOLOR এর মতো কমান্ড ব্যবহার করে চলন্ত আকৃতি, ঘুরন্ত ডিজাইন, স্পাইরাল, বৃত্ত, বর্গ, তারা ইত্যাদি অ্যানিমেশন তৈরি করা সম্ভব। এই কমান্ডগুলো অ্যানিমেশনকে আরও সৃজনশীল এবং মজাদার করতে সহায়ক।
Logo ভাষায় Smooth Motion এবং Frame Control ব্যবহার করে আপনি টার্টল গ্রাফিক্সের অ্যানিমেশন ও চলাচলকে আরও ন্যাচারাল এবং নিয়ন্ত্রণযোগ্য করতে পারেন। এগুলি ব্যবহার করে আপনি টার্টলকে মসৃণভাবে সরাতে, বিভিন্ন অ্যানিমেশন ইফেক্ট তৈরি করতে এবং প্রতিটি পদক্ষেপের সময়কাল নির্ধারণ করতে পারবেন।
1. Smooth Motion (মসৃণ চলাচল):
Logo ভাষায় Smooth Motion তৈরি করতে, আপনি টার্টলকে ধীরে ধীরে এবং মসৃণভাবে সরানোর জন্য ছোট ছোট স্টেপ ব্যবহার করতে পারেন। FORWARD, BACKWARD, এবং WAIT কমান্ডের মাধ্যমে টার্টলের চলাচলকে নিয়ন্ত্রণ করা যায়।
কোড (Smooth Motion Example):
TO smoothMove :distance
REPEAT 50 [ ; ৫০টি ছোট স্টেপে চলাচল করবে
FORWARD :distance / 50 ; মোট দূরত্বের এক ছোট অংশে এগিয়ে যাবে
WAIT 1 ; ১ মিলিসেকেন্ড বিরতি
]
END
smoothMove 200 ; মোট ২০০ পিক্সেল মসৃণভাবে এগিয়ে যাবেএখানে:
- REPEAT 50: ৫০ বার কোডটি পুনরাবৃত্তি করবে, যাতে মোট ২০০ পিক্সেল ছোট ছোট স্টেপে চলে।
- FORWARD :distance / 50: মোট দূরত্বকে ৫০ দিয়ে ভাগ করা হয়েছে, যাতে ছোট ছোট স্টেপে চলতে পারে।
- WAIT 1: প্রতিটি স্টেপের মধ্যে ১ মিলিসেকেন্ডের বিরতি দেয়, যা চলাচলকে মসৃণ করে তোলে।
এটি টার্টলকে একটি নির্দিষ্ট দূরত্ব মসৃণভাবে এগিয়ে নিয়ে যাবে।
2. Frame Control (ফ্রেম নিয়ন্ত্রণ):
Logo ভাষায় Frame Control বা Frame Rate নিয়ন্ত্রণ করার জন্য সাধারণত WAIT কমান্ড এবং নির্দিষ্ট সময়ে বিভিন্ন গ্রাফিক্যাল উপাদান পরিবর্তন করা হয়। WAIT কমান্ডটি ব্যবহারের মাধ্যমে আপনি প্রতিটি ফ্রেমের মধ্যে বিরতি নির্ধারণ করতে পারেন, যা অ্যানিমেশন বা চলাচলের গতিকে নিয়ন্ত্রণ করতে সাহায্য করে।
কোড (Frame Control Example):
TO animatedSquare :size
REPEAT 36 [ ; ৩৬টি ফ্রেমে চলাচল করবে
REPEAT 4 [
FORWARD :size ; বর্গের সাইড আঁকবে
RIGHT 90
]
RIGHT 10 ; বর্গের পরে ১০ ডিগ্রী ঘুরবে
WAIT 5 ; ৫ মিলিসেকেন্ড বিরতি
]
END
animatedSquare 100 ; ১০০ পিক্সেলের সাইড দিয়ে বর্গ আঁকবে এবং অ্যানিমেশন তৈরি করবেএখানে:
- REPEAT 36: এটি ৩৬টি ফ্রেমে বর্গ আঁকবে, প্রতিটি ফ্রেমে একটি অংশ আঁকা হবে।
- WAIT 5: প্রতি ফ্রেমের পরে ৫ মিলিসেকেন্ড বিরতি দেওয়া হবে, যা অ্যানিমেশনটিকে স্লো করবে।
এটি টার্টলকে একটি অ্যানিমেটেড বর্গ আঁকতে এবং প্রতিটি ফ্রেমে বিরতি দিতে সাহায্য করবে।
3. Smooth Path with Variable Speed:
Smooth Path তৈরি করতে আপনি WAIT কমান্ডের সাথে VARIABLE SPEED ব্যবহার করতে পারেন, যাতে টার্টল ধীরে ধীরে অথবা দ্রুত চলতে পারে। বিভিন্ন গতি তৈরি করার জন্য টার্টলের এগিয়ে যাওয়ার সময় বিরতির মান পরিবর্তন করতে পারেন।
কোড (Variable Speed Example):
TO variableSpeedMove :distance :speed
MAKE "steps :distance / 10
REPEAT :steps [
FORWARD 10 ; প্রতি স্টেপে ১০ পিক্সেল এগিয়ে যাবে
WAIT :speed ; গতি নিয়ন্ত্রণের জন্য WAIT কমান্ড ব্যবহার করা হবে
]
END
variableSpeedMove 100 5 ; ১০০ পিক্সেল দ্রুত গতি নিয়ে চলে
variableSpeedMove 100 20 ; ১০০ পিক্সেল ধীরে ধীরে চলেএখানে:
- WAIT :speed: গতি নির্ধারণ করতে আপনি
:speedভেরিয়েবল ব্যবহার করতে পারেন। কম গতি মানের জন্য বেশি বিরতি দেওয়া হবে এবং বেশি গতি মানের জন্য কম বিরতি দেওয়া হবে।
4. Frame Animation with Changing Objects:
Frame Animation তৈরি করতে আপনি একাধিক গ্রাফিক্যাল উপাদান বা বস্তু নিয়ে কাজ করতে পারেন। এতে আপনি ফ্রেমগুলির মধ্যে বস্তু পরিবর্তন করতে পারেন, যেমন টার্টল-এর অবস্থান বা আকৃতি।
কোড (Frame Animation with Changing Objects):
TO movingCircle :size
REPEAT 100 [ ; ১০০ ফ্রেমে চলাচল করবে
SETPENCOLOR "red ; পেনের রঙ পরিবর্তন করবে
FORWARD :size
RIGHT 45
WAIT 2
SETPENCOLOR "blue ; পরবর্তী ফ্রেমে রঙ পরিবর্তন করবে
]
END
movingCircle 5এখানে:
- SETPENCOLOR "red: প্রথমে রঙ লাল করা হবে।
- SETPENCOLOR "blue: পরবর্তী ফ্রেমে রঙ নীল হয়ে যাবে।
- WAIT 2: প্রতিটি ফ্রেমের পরে ২ মিলিসেকেন্ড বিরতি হবে।
সারসংক্ষেপ:
Smooth Motion এবং Frame Control ব্যবহার করে আপনি Logo ভাষায় মসৃণভাবে চলাচল এবং গ্রাফিক্যাল অ্যানিমেশন তৈরি করতে পারেন। WAIT কমান্ডটি ব্যবহার করে আপনি ফ্রেমগুলির মধ্যে বিরতি নিয়ন্ত্রণ করতে পারেন, এবং Recursion এবং Variable Speed ব্যবহার করে আপনি অ্যানিমেশনগুলিকে আরও নিয়ন্ত্রণযোগ্য এবং নিখুঁত করতে পারেন। এগুলির মাধ্যমে টার্টল গ্রাফিক্সের গতিকে এবং অ্যানিমেশনকে আরও আকর্ষণীয় এবং নিয়ন্ত্রণযোগ্য করা যায়।
Object Movement এবং Repetition Techniques Logo ভাষায় গ্রাফিক্যাল অবজেক্ট (যেমন টার্টল) এর চলাচল এবং প্যাটার্ন পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়। এই দুটি ধারণা ব্যবহার করে, আপনি বিভিন্ন আকৃতি আঁকতে এবং তাদের মধ্যে গতিশীলতা ও পুনরাবৃত্তি তৈরি করতে পারেন। নিচে Object Movement এবং Repetition Techniques সম্পর্কে বিস্তারিত আলোচনা করা হলো।
1. Object Movement (অবজেক্ট চলাচল):
Logo ভাষায় Object Movement সাধারণত Turtle (টার্টল) এর মাধ্যমে পরিচালিত হয়, যা একটি গ্রাফিক্যাল অবজেক্ট হিসেবে কাজ করে এবং নির্দিষ্ট নির্দেশনায় চলে। Object Movement এর জন্য কিছু মৌলিক কমান্ড রয়েছে:
FORWARD (fd):
- FORWARD কমান্ডটি টার্টলকে একটি নির্দিষ্ট দূরত্ব এগিয়ে নিয়ে যায়।
FORWARD 100 ; টার্টলকে ১০০ পিক্সেল এগিয়ে নিয়ে যাবেBACKWARD (bk):
- BACKWARD কমান্ডটি টার্টলকে একটি নির্দিষ্ট দূরত্ব পিছনে নিয়ে যায়।
BACKWARD 50 ; টার্টলকে ৫০ পিক্সেল পিছনে নিয়ে যাবেRIGHT (rt):
- RIGHT কমান্ডটি টার্টলকে ডান দিকে নির্দিষ্ট কোণে ঘুরিয়ে দেয়।
RIGHT 90 ; টার্টলকে ৯০ ডিগ্রি ডান দিকে ঘুরাবেLEFT (lt):
- LEFT কমান্ডটি টার্টলকে বাম দিকে নির্দিষ্ট কোণে ঘুরিয়ে দেয়।
LEFT 45 ; টার্টলকে ৪৫ ডিগ্রি বাম দিকে ঘুরাবেSETHEADING:
- SETHEADING কমান্ডটি টার্টলকে একটি নির্দিষ্ট কোণে ঘুরানোর জন্য ব্যবহৃত হয়।
SETHEADING 90 ; টার্টলকে ৯০ ডিগ্রি কোণ (ডান দিকে) ঘুরাবেPENDOWN এবং PENUP:
- PENDOWN টার্টলকে পেন নামাতে এবং PENUP টার্টলকে পেন তুলতে ব্যবহৃত হয়।
PENDOWN ; পেন নামাবে
FORWARD 100
PENUP ; পেন তুলবে2. Repetition Techniques (পুনরাবৃত্তি কৌশল):
Repetition Techniques এর মাধ্যমে আপনি একটি নির্দিষ্ট কাজ বার বার করতে পারেন। Logo ভাষায় এটি REPEAT, FOR, এবং WHILE লুপের মাধ্যমে করা যায়।
REPEAT:
- REPEAT কমান্ডটি একটি কাজ বা কোডকে একাধিকবার পুনরাবৃত্তি করতে ব্যবহৃত হয়।
REPEAT 4 [
FORWARD 100
RIGHT 90
] ; ৪ বার কোডটি পুনরাবৃত্তি হবে, একটি বর্গ আঁকবেএখানে, REPEAT 4 কমান্ডটি কোডটি ৪ বার চালাবে, এবং প্রতিটি চক্রে FORWARD 100 এবং RIGHT 90 কমান্ড চালাবে, যার ফলে একটি বর্গ আঁকা হবে।
FOR:
- FOR লুপটি একটি নির্দিষ্ট সংখ্যা বার কোনো কাজ করতে ব্যবহৃত হয়। এটি বিশেষভাবে গণনা ভিত্তিক পুনরাবৃত্তি করতে সহায়ক।
FOR :i 1 5 [
PRINT :i ; ১ থেকে ৫ পর্যন্ত সংখ্যা প্রিন্ট করবে
]এখানে, FOR :i 1 5 ১ থেকে ৫ পর্যন্ত সংখ্যা পুনরাবৃত্তি করবে এবং PRINT :i এর মাধ্যমে প্রতিটি সংখ্যা আউটপুট করবে।
WHILE:
- WHILE লুপটি তখন পর্যন্ত চলতে থাকে যতক্ষণ না একটি শর্ত পূর্ণ হয়।
MAKE "i 0
WHILE :i < 5 [
PRINT :i
MAKE "i :i + 1
]এখানে, WHILE লুপটি :i < 5 শর্ত অনুযায়ী চলবে এবং :i এর মান ১ করে বাড়িয়ে PRINT :i কমান্ডের মাধ্যমে সংখ্যা প্রিন্ট করবে।
REPEAT UNTIL:
- REPEAT UNTIL লুপটি একটি শর্ত পূর্ণ না হওয়া পর্যন্ত একটি কাজ পুনরাবৃত্তি করে।
MAKE "i 0
REPEAT UNTIL :i = 5 [
PRINT :i
MAKE "i :i + 1
]এখানে, REPEAT UNTIL লুপটি :i = 5 শর্ত পূর্ণ না হওয়া পর্যন্ত চলতে থাকবে এবং সংখ্যাগুলি প্রিন্ট করবে।
3. Nested Repetition (নেস্টেড পুনরাবৃত্তি):
Logo ভাষায় আপনি একাধিক লুপ একে অপরের মধ্যে nest (অন্তর্ভুক্ত) করতে পারেন। এটি জটিল প্যাটার্ন তৈরি করতে সহায়তা করে।
কোড (Nested Loop):
REPEAT 4 [ ; বাহ্যিক লুপ
REPEAT 4 [ ; অভ্যন্তরীণ লুপ
FORWARD 50
RIGHT 90
]
RIGHT 90
]এখানে, বাহ্যিক লুপটি ৪ বার চলবে এবং অভ্যন্তরীণ লুপটি ৪ বার চলবে, যা একটি ছোট বর্গ আঁকার পর ৪টি ছোট বর্গ নিয়ে একটি বড় বর্গ আঁকবে।
সারসংক্ষেপ:
Object Movement এবং Repetition Techniques Logo ভাষায় গুরুত্বপূর্ণ ভূমিকা পালন করে। Object Movement এর মাধ্যমে টার্টলকে বিভিন্ন দিকে নিয়ে যাওয়া হয়, এবং Repetition Techniques এর মাধ্যমে কাজের পুনরাবৃত্তি করা হয়, যা আকৃতি তৈরি করার ক্ষেত্রে সহায়ক। REPEAT, FOR, WHILE, এবং REPEAT UNTIL লুপ ব্যবহার করে আপনি বিভিন্ন ডিজাইন এবং প্যাটার্ন সহজে এবং দ্রুত তৈরি করতে পারেন। Nested Repetition এর মাধ্যমে আরও জটিল ডিজাইন তৈরি করা সম্ভব হয়, যা টার্টল গ্রাফিক্সে অসীম রকমের আকৃতি এবং প্যাটার্ন তৈরি করতে সহায়তা করে।
Logo ভাষায় Simple Games এবং Simulations তৈরি করা একটি মজার এবং শিক্ষামূলক প্রক্রিয়া। Games এবং Simulations সাধারণত ব্যবহারকারীকে ইনপুট দেওয়ার জন্য এবং আউটপুট দেখানোর জন্য কমান্ডের ব্যবহার করে তৈরি করা হয়। Logo ভাষায় আমরা Graphics, Recursion, Loops, এবং Conditionals (যেমন IF, IFELSE) ব্যবহার করে সহজ গেম এবং সিমুলেশন তৈরি করতে পারি।
নিচে কিছু সাধারণ Simple Games এবং Simulations তৈরি করার উদাহরণ দেওয়া হলো:
1. Simple Turtle Race Game:
এটি একটি সহজ Turtle Race Game যেখানে দুটি টার্টল একে অপরের সঙ্গে প্রতিযোগিতা করে এবং যেই টার্টল প্রথমে নির্দিষ্ট পয়েন্টে পৌঁছাবে, সেটি জয়ী হবে।
কোড (Turtle Race Game):
TO race
CLEARSCREEN
MAKE "turtle1 0
MAKE "turtle2 0
SETPENCOLOR "red
PENDOWN
REPEAT 50 [
; প্রথম টার্টল চলে
MAKE "turtle1 :turtle1 + RANDOM 10
SETPOS [:turtle1 - :turtle1] [0]
; দ্বিতীয় টার্টল চলে
MAKE "turtle2 :turtle2 + RANDOM 10
SETPOS [:turtle2 - :turtle2] [20]
]
IF :turtle1 > :turtle2 [
PRINT "Turtle 1 Wins!
]
IF :turtle2 > :turtle1 [
PRINT "Turtle 2 Wins!
]
IF :turtle1 = :turtle2 [
PRINT "It's a Tie!
]
END
raceএখানে:
- race একটি প্রক্রিয়া তৈরি করছে যেখানে দুটি টার্টল প্রতিযোগিতা করে।
- RANDOM 10: এটি প্রতিটি টার্টলের চলার পরিমাণ এলোমেলোভাবে নির্ধারণ করবে।
- IF কমান্ড ব্যবহার করে জয়ী টার্টল চিহ্নিত করা হচ্ছে।
2. Simple Bounce Ball Simulation:
এটি একটি সহজ Ball Simulation তৈরি করবে যেখানে একটি বল স্ক্রীনে bounce (ছোটে ছোটে চলে) করবে।
কোড (Bounce Ball Simulation):
TO bounceBall
CLEARSCREEN
MAKE "x 0
MAKE "y 0
MAKE "dx 5
MAKE "dy 5
SETCOLOR "blue
PENDOWN
REPEAT 500 [
SETPOS [:x :y]
MAKE "x :x + :dx
MAKE "y :y + :dy
IF :x > 240 [MAKE "dx - :dx] ; বল স্ক্রীনের ডান দিকে গেলে বাঁয়ে ফিরে আসবে
IF :x < -240 [MAKE "dx - :dx] ; বল স্ক্রীনের বাম দিকে গেলে ডানে ফিরে আসবে
IF :y > 180 [MAKE "dy - :dy] ; বল উপরের দিকে গেলে নিচে ফিরে আসবে
IF :y < -180 [MAKE "dy - :dy] ; বল নিচে গেলে উপরে ফিরে আসবে
WAIT 1
]
END
bounceBallএখানে:
- x, y হল বলের অবস্থান।
- dx, dy হল বলের গতির পরিবর্তন।
- IF কমান্ড ব্যবহার করে বলের স্ক্রীনের সীমানায় পৌঁছালে গতি পরিবর্তন করা হচ্ছে।
3. Simple Click and Draw Game:
এটি একটি সহজ Click and Draw Game যেখানে ব্যবহারকারী স্ক্রীনে ক্লিক করলে একটি ছোট সাদা বর্গ আঁকা হবে।
কোড (Click and Draw Game):
TO clickAndDraw
CLEARSCREEN
PRINT "Click on the screen to draw a square.
REPEAT 100 [
IF MOUSECLICK [
SETCOLOR "green
FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90
FORWARD 50
RIGHT 90
PRINT "Square Drawn!
WAIT 1
]
]
END
clickAndDrawএখানে:
- MOUSECLICK কমান্ড ব্যবহার করে ব্যবহারকারী ক্লিক করার পর স্ক্রীনে একটি বর্গ আঁকা হবে।
- WAIT 1 দিয়ে প্রতিটি ক্লিকের পরে ছোট একটি বিরতি রাখা হয়েছে।
4. Simple Reaction Time Game:
এটি একটি সহজ Reaction Time Game যেখানে ব্যবহারকারী একটি বোতাম ক্লিক করে একটি বলের গতি পরিমাপ করবেন।
কোড (Reaction Time Game):
TO reactionGame
CLEARSCREEN
PRINT "Click as fast as you can when the ball appears!
WAIT 3
SETCOLOR "red
SETPOS [0 100]
CIRCLE 20
WAIT RANDOM 3
PRINT "Click now!
MAKE "startTime TIME
WAIT 5
PRINT "Time taken: " TIME - :startTime
END
reactionGameএখানে:
- TIME কমান্ডের মাধ্যমে সময় নেওয়া হচ্ছে।
- WAIT RANDOM 3 বলটিকে এলোমেলোভাবে কিছু সময় পর স্ক্রীনে প্রদর্শন করা হচ্ছে।
সারসংক্ষেপ:
Simple Games এবং Simulations Logo ভাষায় তৈরি করা অত্যন্ত সহজ এবং শিক্ষামূলক। Recursion, Loops, Conditionals, এবং Graphics এর মাধ্যমে আপনি বিভিন্ন ধরনের গেম এবং সিমুলেশন তৈরি করতে পারেন। উপরের উদাহরণগুলো দেখিয়েছে কিভাবে Logo ভাষায় Turtle Race, Ball Simulation, Click and Draw Game, এবং Reaction Time Game তৈরি করা যায়। এগুলি সাধারণ গেম তৈরির জন্য Logo ভাষার মৌলিক কমান্ডগুলির ব্যবহার এবং গেম ডিজাইন শিখতে সাহায্য করবে।
Read more