Microsoft Small Basic প্রোগ্রামিং এর ৬ষ্ঠ পর্বে স্বাগতম। আজ আমরা Shape Object এর বিভিন্ন অপারেশন শিখবো। তবে তার আগে Subroutine (সাবরুটিন) নামক গুরুত্বপূর্ণ একটি বিষয় নিয়ে লিখব যা গত পর্বে দিতে ভুলে গিয়েছিলাম।
সাবরুটিন
আমরা আমাদের প্রোগ্রামের যে কোন অংশবিশেষ আলাদা একটি নাম দিয়ে প্রোগ্রামের শেষে বা যে কোন যায়গায় লিখতে পারি। পরবর্তীতে আমরা ঐ কোডের নামকে কল করে আমরা কোডগুলো কাজে লাগাতে পারি। এই কাজটিকে বলা হয় সাবরুটিন। সাবরুটিন লেখার Syntax হলোঃ
Sub label 'some codes here Endsub
যখন আমার সাবরুটিনের কোডটুকু কাজে লাগাতে হবে তখন আমাকে লেবেলকে ঠিক এভাবে কল করতে হবেঃ
label()
যেমন উদাহরনস্বরূপ আপনার একটি প্রোগ্রামে বারবার Please enter a disk. লেখার প্রয়োজন হলো তাহলে বারবার এই লাইনটি লিখতে অনেক সময় লাগবে না ? এক্ষেত্রে আমরা একবার সাবরুটিন লিখে বার বার কল করতে পারি।
যেমনঃ
Sub enterdisk
TextWindow.WriteLine(“Please Eneter a disk!”)
EndSub
এবার আমার যতোবার প্রয়োজন ততোবার enterdisk() কে কল করলে Please Enter a disk! লেখা পর্দায় প্রদর্শিত হবে।
আরেকটু পরিষ্কার করা যাক নিচের উদাহরনটির সাহায্যে।
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| TextWindow.WriteLine("Please Enter a number: ")num1 = TextWindow.ReadNumber()TextWindow.WriteLine("Enter another number: ")num2 = TextWindow.ReadNumber()If (num2 = 0) Then Error()Else Divide() TextWindow.WriteLine("The answer of division is: " + ans)EndIfSub Divide ans = num1 / num2EndSubSub Error TextWindow.ForegroundColor = "Red" TextWindow.WriteLine("ERROR: Can Not divide by Zero")EndSub |
আশাকরি বুঝতে পেরেছেন। যদি বুঝতে কোন সমস্যা হয় তাহলে প্লিজ মন্তব্য করবেন।
এবার আমরা আমাদের আজকের মূল আলোচনায় চলে যাই।
Shapes Object (শেপ অবজেক্ট)
MS Small Programming এ শেপ অবজেক্ট একটি অন্যতম মজার অবজেক্ট। এই অবজেক্ট দিয়ে আপনি কি করতে পারবেন? এই অবজেক্ট দিয়ে আপনি বিভিন্ন প্রকার শেপ আঁকতে পারবেন, রোটেট করতে পারবেন, অ্যানিমেশন করতে পারবেন।
Shape Object এর কিছু অপারেশন হলোঃ
- AddImage
- AddRectangle
- HideShape
- ShowShape
- SetOpacity
- GetOpacity
- Move
- Animate
- Zoom
এই অপারেশনগুলোর নামই কাজ বলে দিচ্ছে তাই আর বিস্তারিত ব্যাখ্যায় না যাই। আমরা প্রোগ্রামিং এর মাধ্যমে এগুলোর কাজ শিখে ফেলুন চলি।
1
2
3
4
5
6
7
8
9
10
| GraphicsWindow.BrushColor = "green"rectangle = Shapes.AddRectangle(300,300)Shapes.Move(rectangle,150,50)For i = 1 To 10 Shapes.ShowShape(rectangle) Program.Delay(1000) Shapes.HideShape(rectangle) Shapes.SetOpacity(rectangle, 100-i*10) Program.Delay(800)EndFor |
এবার প্রোগ্রামটি রান করে ফেলুন। এবার ১৮ সেকেন্ড পর্যন্ত দেখতে থাকুন কি ঘটে। কিছু বূঝলেন কি ??
না বুঝলেও কোন ক্ষতি নেই। আমি এই প্রোগ্রামটিতে কি ঘটলো তা নিচে বোঝানের চেষ্টা করছি।
- প্রথমেই আমরা ব্রাশ কালার সবুজ করে নিলাম। যা আমরা গত পর্বে শিখেছিলাম।
- এর পরের স্টেটমেন্টে আমরা rectangle নামে একটি নতুন আয়ত তৈরী করলাম Shapes.AddRectangle(x, y) অপারেশনের মাধ্যমে। এখানে x ও y হলো যথাক্রমে আয়তটির প্রস্থ ও উচ্চতা। তাই আমাদের rectangle নামক আয়তক্ষেত্রটির প্রস্থ ও উচ্চতা হলো ৩০০ ও ৩০০ পিক্সেল।
- এরপর আমরা Shapes.Move(shapeName, x, y) অপারেশনটি চালালাম। Move অপারেশনের মাধ্যমে আমরা যে কোন শেপকে মুভ করতে পারি। এজন্য আমাদের প্রথমে শেপটির নাম লিখতে হবে। এরপর কমা দিয়ে x অক্ষ থেকে কত দূরে এবং y অক্ষ থেকে কতো দূরে তা উল্লেখ করতে হবে। এক্ষেত্রে আমাদের শেপের নাম rectangle এবং x ও y অক্ষ থেকে দূরত্ব যথাক্রমে 150 ও 50 দিলাম।
- এরপরেই আমরা একটি For লুপ শুরু করলাম। লুপের বিষয়টা শেষের দিকে ব্যাখ্যা করছি।
- এরপরের স্টটমেন্ট হলো Shapes.ShowShape(rectangle) এতোক্ষন কিন্তু আমাদের তৈরী করা আয়তটি পর্দায় দেখাচ্ছিলোনা। কিন্তু এবার ShowShape অপারেশনের মাধ্যমে আমরা তা পর্দায় দেখালাম। এখানে উল্লেখ্য ShowShape(name) হলো ইহার Syntax.
- এরপরের স্টেটমেন্ট হলো Program.Delay(1000) এখানে Delay হলো Program নামক অবজেক্টের একটি অপারেশন। এই অবজেক্ট সম্পর্কে আমরা সামনের পর্বে বিস্তারিত জানবো। তবে এখন Delay অপারেশনের মাধ্যমে আমরা আমাদের প্রোগ্রাম এক্সিকিউশনকে ১০০০ মিলিসেকেন্ড বা ১ সেকেন্ড ডিলে করালাম বা দেরি করলাম। অর্থাৎ ১ সেকেন্ড পূর্ণ না হওয়া পর্যন্ত আবার প্রোগ্রাম পরবর্তী স্টেটমেন্ট রান করবে না।
- এর পরের স্টেটমেন্টটি হলো Shapes.HideShape(rectangle) এর মাধ্যমে আমরা আমাদের তৈরী আয়তটি লুকিয়ে ফেললাম।
- এরপরের স্টেটমন্টেটির মাধ্যমে আমাদের শেপটির আমরা Opacity কমাচ্ছি। মূলত এখানেই আমরা আমাদের লুপ কাজে লাগাচ্ছি। Shapes.SetOpacity(shapeName, opacity) এই অপারেশনের মাধ্যমে আমরা যে কোন শেপ অবজেক্টের অপাসিটি সেট করতে পারি। Opacity এর মান 0 থেকে 100 পর্যন্ত সীমাব্ধ।
- এর পরের স্টেটমেন্টটির মাধ্যমে আমরা আবার 800 মিলিসেকেন্ড অপেক্ষা করবো।
- লুপের ভিতরের কাজগুলো 10 বার ঘটবে। আর প্রতিবার i এর মান পরিবর্তন হওয়ার সাথে সাথে Opacity ও পরিবর্তিত হবে। এভাবে আমরা একটি Blink ইফেক্ট তৈরী করলাম।