فصل هفتم : نوشتن برنامه های سرگرمی با اشکال

ما در این فصل با هر آنچه که تا کنون آموخته ایم کمی سرگرم خواهیم شد.

این فصل شامل نمونه‌هایی است که راه‌های جالبی را برای ترکیب همه چیزهایی که تاکنون آموخته‌اید برای ایجاد برنامه‌های جذاب نشان می‌دهد.

 

مربع های تو در تو

برنامه زیر چندین مربع تو در تو را در اندازه های مختلف با استفاده از حلقه رسم می کند:

“GraphicsWindow.BackgroundColor = “Black

“GraphicsWindow.PenColor = “LightBlue

GraphicsWindow.Width = 200

GraphicsWindow.Height = 200

For i = 1 To 100 Step 5

GraphicsWindow.DrawRectangle(100 – i, 100 – i, i * 2, i * 2)

EndFor

 

شکل 1-7 _ مستطیل های تو در تو

شکل ۱-۷ : مستطیل های تو در تو

 

دایره های تو در تو

مشابه برنامه قبل، این بار برنامه ای برای رسم دایره های تو در تو می نویسیم:

“GraphicsWindow.BackgroundColor = “Black

“GraphicsWindow.PenColor = “LightGreen

GraphicsWindow.Width = 200

GraphicsWindow.Height = 200

For i = 1 To 100 Step 5

GraphicsWindow.DrawEllipse(100 – i, 100 – i, i * 2, i * 2)

EndFor

 

شکل 2-7 _ دایره های تو در تو

شکل ۲-۷ : دایره های تو در تو

 

رنگ های تصادفی

این برنامه از عملیات GraphicsWindow.GetRandomColor برای تنظیم رنگ های تصادفی برای قلم و از Math.GetRandomNumber برای تنظیم مختصات x و y برای دایره ها استفاده می کند.

با ترکیب این دو عملیات می توان برنامه های جالبی را ایجاد کرد که هر بار که اجرا می شوند نتایج متفاوتی به دست می آورند.

 

“GraphicsWindow.BackgroundColor = “Black

For i = 1 To 1000

()GraphicsWindow.BrushColor = GraphicsWindow.GetRandomColor

x = Math.GetRandomNumber(640)

y = Math.GetRandomNumber(480)

GraphicsWindow.FillEllipse(x, y, 10, 10)

EndFor

 

شکل 3-7 _ رنگ های تصادفی

شکل ۳-۷ : رنگ های تصادفی

 

فراکتال ها

برنامه زیر یک فراکتال مثلث ساده را با استفاده از اعداد تصادفی ترسیم می کند.

فراکتال یک شکل هندسی است که می‌توان آن را به بخش‌هایی تقسیم کرد که هر کدام دقیقاً شبیه شکل والد خود هستند.

در این حالت، برنامه صدها مثلث را ترسیم می کند که هر کدام شبیه مثلث والد خود هستند.

از آنجایی که اجرای برنامه چند ثانیه طول می کشد، می توانید ترسیم مثلث ها را در حین شکل گیری ببینید.

با اجرای برنامه ، راحت تر به درک این مفهوم خواهید رسید.

 

“GraphicsWindow.BackgroundColor = “Black

x = 100

y = 100

 For i = 1 To 100000

r = Math.GetRandomNumber(3)

ux = 150

uy = 30

If (r = 1) then

ux = 30

uy = 1000

EndIf

 If (r = 2) Then

ux = 1000

uy = 1000

EndIf

 x = (x + ux) / 2

y = (y + uy) / 2

 GraphicsWindow.SetPixel(x, y, “LightGreen”)

EndFor

 

شکل 4-7 _ فراکتال مثلثی

شکل ۴-۷ : فراکتال مثلثی

 

اگر می‌خواهید واقعاً نقطه‌هایی را ببینید که به آرامی فراکتال را تشکیل می‌دهند، می‌توانید با استفاده از عملیات Program.Delay یک تاخیر (برحسب میلی ثانیه) در اجرای حلقه ایجاد کنید.

عددی که به این عملیات می دهید، میزان تاخیر اجرای برنامه را برحسب میلی ثانیه مشخص می کند.

در اینجا برنامه تغییریافته با عملیات Program.Delay را مشاهده می کنید:

“GraphicsWindow.BackgroundColor = “Black

x = 100

y = 100

 For i = 1 To 100000

r = Math.GetRandomNumber(3)

ux = 150

uy = 30

If (r = 1) then

ux = 30

uy = 1000

EndIf

 If (r = 2) Then

ux = 1000

uy = 1000

EndIf

x = (x + ux) / 2

y = (y + uy) / 2

GraphicsWindow.SetPixel(x, y, “LightGreen”)

Program.Delay(2)

EndFor

 

افزایش عدد Program.Delay باعث تأخیر بیشتر در روند اجرای برنامه می شود. این موضوع را با اعداد مختلف تجربه کنید.

 

تغییر دیگری که می توانید در این برنامه ایجاد کنید این است که خط زیر را:

GraphicsWindow.SetPixel(x, y, “LightGreen”)

 

با خطوط:

()color = GraphicsWindow.GetRandomColor

GraphicsWindow.SetPixel(x, y, color)

جایگزین کنید.

 

این تغییر باعث می شود که برنامه، پیکسل های مثلث را با استفاده از رنگ های تصادفی ترسیم کند.

 

ترجمه و تألیف : کامبیز حسامی

تهیه شده در : تیناسافت

 

 

بازگشت به صفحه اصلی آموزش اسمال بیسیک

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *