آموزش Turtle در پایتون: رسم دانه برف گرافیکی + مثال عملی

قسمت 7
رزبری پای 7
مشاهده سایر جلسات آموزش
160 بازدید
۱۴۰۴-۱۱-۰۴
7 دقیقه
  • نویسنده: بهاره بهرامی
  • درباره نویسنده: ---

حالا که با نحوه کار با پایتون آشنا شدید، زمان آن رسیده که کمی کار گرافیکی انجام دهید. قصد داریم در ادامه با استفاده از ابزاری به نام «turtle» یک دانه برف بسازیم.

turtle که در اصل ربات‌هایی شبیه به لاک‌پشت هستند، برای حرکت در یک خط مستقیم، چرخش و بلند کردن و پایین آوردن قلم طراحی شده‌اند. ورژن دیجیتالی turtle در واقع کار کشیدن یا متوقف کردن رسم یک خط را بر عهده دارد. پایتون برخلاف برخی از زبان‌های برنامه‌نویسی مانند لوگو، ابزار turtle را ندارد اما می‌توان با اضافه کردن کتابخانه‌ای، از این ابزار در پایتون هم استفاده کرد.

کتابخانه‌ها، پکیج‌ها یا بسته‌هایی هستند که با اضافه کردن دستورالعمل‌های جدید، قابلیت‌های پایتون را گسترش می‌دهند. کتابخانه‌ها را با استفاده از دستور import می‌توان به برنامه‌ها اضافه کرد. نهایتاً برای ساخت یک برنامه جدید بر روی آیکون New (+) کلیک کنید و سپس کد زیر را تایپ کنید:

برای استفاده از دستورات موجود در یک کتابخانه باید ابتدا نام کتابخانه را به همراه یک نقطه وارد و سپس نام دستور را تایپ کنید. اینکه هر بار مجبور باشید این کار را تکرار کنید، آزاردهنده است. برای ساده‌سازی این فرایند می‌توانید یک نام کوتاه‌تر به متغیر اختصاص دهید (این نام اختصاری می‌تواند فقط یک حرف باشد). با این حال در ادامه از کد زیر استفاده می‌کنیم:

برای اینکه بتوانید برنامه را تست کنید، باید به لاک‌پشت بگویید که کاری انجام دهد؛ بنابراین کد زیر را تایپ کنید:

برای اجرای برنامه، روی آیکون Run کلیک کنید و برنامه‌ را با نام «Turtle Snowflakes» ذخیره کنید. پس از ذخیره برنامه، یک پنجره جدید به اسم Turtle Graphics ظاهر می‌شود و سپس خروجی برنامه را مشاهده می‌کنید:

 لاک ‌پشت 100 واحد به جلو حرکت می‌کند و یک خط مستقیم رسم می‌کند (شکل 1-7).

شکل 7-1: Turtle  برای کشیدن یک خط مستقیم به جلو حرکت می‌کند

شکل 7-1: Turtle برای کشیدن یک خط مستقیم به جلو حرکت می‌کند

برای بازگشت به پنجره اصلی Thonny (در صورتی که پشت پنجره Turtle Graphics مخفی شده باشد) می‌توانید روی دکمه minimize در پنجره Turtle Graphics کلیک کنید یا می‌توانید روی آیکون Thonny entry در نوار وظیفه/ task bar در بالای صفحه کلیک و بعد روی دکمه Stop کلیک کنید تا پنجره Turtle Graphics بسته شود.

قطعاً اینکه هر بار یک دستور حرکتی را تایپ کنید، خسته‌کننده است، بنابراین کاری که می‌کنیم این است که خط 3 را حذف و یک حلقه تعریف می‌کنیم تا کار رسم شکل را انجام دهد:

برنامه را اجرا کنید تا Pat شروع به رسم یک متوازی‌الاضلاع ساده کند (شکل7-2).

شکل 7-2: با ترکیب چرخش‌ها و جابجایی‌ها، اشکال مختلفی می‌توانید رسم کنید.

شکل 7-2: با ترکیب چرخش‌ها و جابجایی‌ها، اشکال مختلفی می‌توانید رسم کنید.

برای تبدیل این شکل به یک دانه برف، روی آیکون Stop در پنجره اصلی Thonny کلیک کنید و سپس یک حلقه جدید تعریف کنید به گونه‌ای که حلقه قبلی را در بربگیرد. خط زیر را جایگزین خط 3 کنید تا یک حلقه تو در تو ایجاد شود:

برای کامل کردن برنامه، در انتها کد زیر را اضافه کنید:

توجه کنید که برنامه به این شکل اجرا نخواهد شد، زیرا تورفتگی درستی در حلقه وجود ندارد. برای رفع این مشکل، ابتدای هر خط در حلقه کلیک کنید (خطوط 4 تا 8) و کلید SPACE را چهار بار فشار دهید تا تورفتگی به شکل صحیحی اصلاح شد. حال برنامه باید به این شکل باشد:

روی آیکون Run کلیک کنید و ببینید turtle چه می‌کند: لاک‌پشت همانند قبل یک متوازی‌الاضلاع رسم خواهد کرد. با این تفاوت که وقتی رسم آن تمام شد، 36 درجه می‌چرخد و یک متوازی‌الاضلاع دیگر رسم خواهد کرد. این کار یکی پس از دیگری ادامه خواهد یافت تا ده متوازی‌الاضلاع روی هم رسم شود. حال این شکل کمی شبیه به یک دانه برف است (شکل 10-5).

شکل 7-3: تکرار شکل برای ساخت شکل های پیچیده‌تر

شکل 7-3: تکرار شکل برای ساخت شکل های پیچیده‌تر

لاک‌پشت روباتیک می‌تواند تنها با یک رنگ روی یک کاغذ بزرگ ترسیم کند اما لاک‌پشت شبیه‌سازی شده در پایتون می‌تواند با طیف گسترده‌ای از رنگ‌ها، اشکال مختلف ترسیم کند. بدین منظور دو خط جدید به گونه‌ای اضافه می‌کنیم که خط‌های 3 و 4، به دو خط پایین‌تر منتقل شوند:

شاید برای شما مفید باشد:
استفاده گوگل از رزپری پای و شروع پروژه AIY

برنامه را دوباره اجرا کنید و ببینید با توجه به کد جدید، چطور عمل می‌کند:

همان‌طور که می‌بینید رنگ پس‌زمینه پنجره Turtle Graphics به آبی تغییر کرده و دانه برف فیروزه‌ای شده است

شکل 7-4: تغییر رنگ پس‌زمینه و دانه‌های برف

شکل 7-4: تغییر رنگ پس‌زمینه و دانه‌های برف

 

کار دیگری که می‌توانید انجام دهید این است که با استفاده از کتابخانه random، رنگ‌ها را به صورت تصادفی انتخاب کنید. به برنامه برگردید و خط زیر را به عنوان خط 2 اضافه کنید:

رنگ پس‌زمینه را در خط 4 که در حال حاضر blue است به grey تغییر دهید، سپس یک متغیر جدید به نام colours در خط 5 تعریف کنید:

تلفظ آمریکایی

در بسیاری از زبان‌های برنامه‌نویسی، ازجمله پایتون، املای آمریکایی کلمات مد نظر قرار دارد. به عنوان مثال برای تغییر رنگ قلم لاک‌پشت، عبارت color تایپ می‌شود. حال اگر این دستور به شیوه انگلیسی بریتانیایی یعنی colour نوشته شود، در ساده‌ترین حالت برنامه کار نمی‌کند؛ اما در مورد متغیرها، انعطاف بیشتری وجود دارد. می‌توانید متغیرها را هر طور که دوست دارید، نام‌گذاری کنید. به همین دلیل می‌توانید یک متغیر جدید به نام colours (با املای بریتانیایی) تعریف کنید. این موضوع در پایتون هم قابل قبول است، زیرا نام‌گذاری متغیرها قوانین املایی مشخص، ندارد.

این نوع متغیر به عنوان لیست شناخته می‌شود و با کروشه‌ها مشخص می‌شود. در این مورد، لیست با رنگ‌های ممکن برای بخش‌های مختلف دانه برف پر شده است. با این حال باز هم لازم است که به پایتون بگویید هر بار که حلقه تکرار می‌شود، یکی را انتخاب کند. در انتهای برنامه، دستور زیر را وارد کنید. برای اینکه این دستور بخشی از حلقه بیرونی باشد، مطمئن شوید که چهار فاصله تورفتگی را لحاظ کرده‌اید، دقیقاً مانند خط بالای آن:

روی آیکون Run کلیک کنید. خواهید دید که دانه برف دوباره رسم خواهد شد. این بار پایتون یک رنگ تصادفی از لیست انتخاب می‌کند و هر گلبرگ را رسم می‌کند. به این صورت در پایان یک دانه برف چندرنگ زیبا می‌بینید (شکل 7-5).

شکل 7-5: استفاده از رنگ‌های تصادفی برای رسم هر گلبرگ

شکل 7-5: استفاده از رنگ‌های تصادفی برای رسم هر گلبرگ

برای اینکه دانه برف کمتر شبیه ستاره نینجا و بیشتر شبیه یک دانه برف واقعی باشد، یک خط جدید به عنوان خط 6، دقیقاً زیر لیست colours اضافه کنید و بعد عبارت زیر را تایپ کنید:

اگر دستورهای penup و pendown را به یک ربات لاک‌پشت بدهید، ربات قلم را از روی کاغذ بلند می‌کند و دوباره روی کاغذ می‌گذارد، اما در دنیای مجازی لاک‌پشت رسم خطوط را متوقف کرده و دوباره شروع می‌کند. این بار، به جای استفاده از یک حلقه، قصد داریم یک تابع تعریف کنیم. تابع بخشی از کد است که می‌توانید در هر زمان آن را فراخوانی کنید.

ابتدا کدی که برای رسم دانه‌های برف با چندین متوازی‌الاضلاع بود را حذف کنید. دقت کنید که این حذف کردن شامل همه چیز ازجمله دستور pat.color(“cyan”) در خط 10 تا دستور pat.right(36)  در خط 17 می‌شود. حال دستور  pat.color(random.choice(colours))  را تایپ کنید و یک علامت هشتگ (#) در ابتدای آن اضافه کنید. از علامت # برای کامنت‌گذاری روی یک دستور استفاده می‌شود و به این معناست که می‌توانید توضیحاتی را به کد اضافه کنید. این کار باعث می‌شود وقتی پس از مدتی به برنامه باز می‌گردید یا آن را برای فرد دیگر ارسال می‌کنید، کدهایی که نوشته‌اید راحت‌تر درک شوند.

ابتدا یک تابع به نام branch تعریف کنید. برای این منظور دستور زیر را در خط 10 و زیر دستور pat.pendown() تایپ کنید:

به این صورت یک تابع به اسم branch  تعریف می‌شود. وقتی کلید ENTER را فشار دهید،  Thonny  به طور خودکار برای دستورات تورفتگی را اضافه می‌کند. دستورالعمل‌های زیر را تایپ و به تورفتگی‌ها (indentation) توجه کنید. چون در یک نقطه قرار است که کد سه سطح تورفتگی تودرتو داشته باشد.

شاید برای شما مفید باشد:
راه اندازی نمایشگر تک رنگ ارزان قیمت با آردوینو (Nokia 1202)

در نهایت، یک حلقه جدید در انتهای برنامه و بالای خط دارای کامنت colour  تعریف کنید. هدف از این کار فراخوانی و اجرای تابع جدید است.

در نهایت برنامه شما باید به این شکل باشد:

روی دکمه Run کلیک کنید و ببینید که Pat چگونه طبق کدی که نوشتید، عمل می‌کند.

 تبریک می‌گویم: دانه برف شما خیلی بیشتر از قبل شبیه یک دانه برف شده است (شکل 7-6)!

شکل 7-6: branche های بیشتر سبب می‌شوند که شکل شما خیلی بیشتر شبیه دانه‌های برف باشد.

شکل 7-6: branche های بیشتر سبب می‌شوند که شکل شما خیلی بیشتر شبیه دانه‌های برف باشد.

چالش: مرحله بعدی چیست؟

آیا می‌توانید branche هایی با رنگ‌های مختلف رسم کنید؟ آیا می‌توانید یک تابع به نام snowflake تعریف کنید و از آن برای رسم تعداد زیادی دانه برف بر روی صفحه استفاده کنید؟ آیا می‌توانید برنامه را طوری تنظیم کنید که اندازه و رنگ دانه‌های برف را به صورت تصادفی تغییر دهد؟

اطلاعات
160
0
0
اشتراک و حمایت
profile نویسنده: بهاره بهرامی متخصص الکترونیک

ویراستار: M Hariri
مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله