کتابخانه turtle ، طراحی بازی و برنامه با پایتون

turtle یکی از کتابخانه هایی است که معمولا ، هر فردی با آن آشنا است و جزو اولین قدم های یادگیری پایتون است.
شما ، با استفاده از دستور های ساده میتوانید ، بازی های مختلف ، انیمیشن ها و برنامه های کاربردی طراحی کنید.
روش کار :
turtle ، از کتابخانه Tkinter استفاده میکند و به صورت ، event based کار میکند ، به این معنا که در واقع شما قابلیت ساخت لوپ ندارید و باید دستور ها برای کار های مختلف تعیین شود ،
برای مثال بگوییم اگر روی این دکمه کلیک شد ، این اتفاق بیفتد .
استفاده ها :
امروزه با همه ی سادگیش ، در خیلی از پروژه های هوش مصنوعی و کامپیوتر ویژن ( بینایی کامپیوتر ) استفاده میشود.
پروژه هایی مانند دریافت وبکم و کشیدنش به صورت سیاه سفید در ترتل ، یا ساخت برنامه هایی مثل ورد ، پاورپوینت و پینت با آپشن های محدود تر.
نصب :
برای نصب کتابخانه ، نیازی به کار خاصی نیست ، با نصب پایتون به صورت خودکار turtle هم با آن نصب میشود .
در صورتی که نصب نشده است ، وارد cmd خود شوید و دستور زیر را وارد کنید :
pip install turtle
اگر پایتون را نصب ندارید ، از سایت رسمی خود زبان دانلود و نصب را انجام دهید .
ایمپورت کتابخانه :
برای استفاده از کتابخانه در فایل های پایتون خود ، کافی است از دستور زیر استفاده کنید :
import turtle
دستور های اولیه :
برای شروع کار خود ، باید اول صفحه ای برای برنامه بسازید ، به کد زیر توجه کنید :
import turtle #1
screen = turtle.Screen() #2
screen.setup(width = 800, height=600) #3
screen.bgcolor("black") #4
turtle.done() #5
در خط اول کتابخانه را ایمپورت میکنیم .
در خط دوم یک صفحه تعریف میکنیم که همه ی شکل ها و اشیاء بازی روی آن قرار میگیرند . ( اسم متغیر دلخواه است )
در خط سوم ، اندازه صفحه را تعریف میکنیم ، width برای عرض و height برای ارتفاع که به پیکسل است ، برای فول اسکرین شدن برنامه ، هردوی پارامتر ها را مساوی با 1.0 قرار دهید .
در خط چهارم ، رنگ بک گراند را تعریف میکنیم ، در turtle از رنگ های انگلیسی استفاده میشود که تعداد زیادی رنگ از جمله red, blue, cyan, purple , magenta و ... پشتیبانی میشود.
خط پنجم ، اصلی ترین خط هر فایلی است که با ترتل نوشته شده ، در صورت عدم استفاده این خط برنامه شما درست کار نمی کند و برای استفاده از برنامه به مشکل میخورید .
در اصل این خط ، به ترتل میگوید که برنامه باید اغاز شود و تا هنگام کلیک روی دکمه خروج برنامه ، کار کند . ( حتما باید خط آخر کد باشد )
هر کلاس (class) متود های زیادی برای انجام کارهای مختلف دارد که Screen() یکی از ای کلاس هاست ، در کد زیر میتونید متود های مهم را با توضیحات بررسی کنید :
screen.setup(width = 800, height=600) #بالا توضیح داده شد
screen.bgcolor("black")# بالا توضیح داده شد
screen.bgpic("image.gif") # قرار دادن تصویر پس زمینه برای صفحه ی شما (فرمت عکس باید گیف باشد)
screen.clear() # حذف هرچیزی که روی صفحه کشیده شده
screen.title("") # عنوان بالای صفحه برنامه (اسم)
دوره ها و مطالب مربوط به ترتل :
دوره ویدیویی آموزش کامل ترتل
شئ ترتل:
برای قرار دادن هرچیزی در صفحه ، باید یک شئ با استفاده از کلاس Turtle برایش درست کنید ، و بعد به آن عکس ، مکان ، سرعت و ..... دهید .
شئ ها در ترتل با بقیه پکیج ها متفاوت هستند ، مثل یک لاکپشت عمل میکنند ، همه ی آنها در اول در وسط برنامه و نقطه 0و 0 قرار دارند و بعد به موقعیت هایی که شما داده اید میروند .
برای تعریف یک شئ از خط زیر استفاده میکنیم :
name = turtle.Turtle()
و حالا میتوانید با این شئ کار های مختلفی انجام دهید ، مانند حرکت دادنش و .....
قبل از معرفی متود ها باید به مبحث خودکار ترتل توجه کنیم ، منظورمان چیست ؟ در ترتل وقتی که شئ شما حرکت میکند ، به عنوان یک خودکار عمل میکند و خط میکشد ، سرعت حرکت دارد ، سایز خودکار دارد و ... که میتونید در صورت نیاز حتی خودکار رو غیر فعال کنید تا دیگر در اثر حرکت چیزی رسم نکند.
یک نمونه از طرح هایی که با ترتل انجام شده است رو با کدش بررسی کنیم :
نمونه اول :

قبل از بررسی ادامه ، یکبار کد رو برای خودتون هم اجرا کنید تا بتوانید به راحتی کد رو درک کنید :
import turtle
circle = turtle.Turtle()
circle.speed(0)
turtle.bgcolor("black")
for i in range (15) :
for colours in ("red", "magenta", "blue", "cyan", "green", "yellow", "white") :
circle.color(colours)
circle.pensize(3)
circle.left(4)
circle.forward(200)
circle.left(90)
circle.forward(200)
circle.left(90)
circle.forward(200)
circle.left(90)
circle.forward(200)
circle.left(90)
turtle.done()
دقیقا توی این کد چه اتفاقی افتاده است ؟
در خط دوم یک شئ تعریف کردیم ، و حالا رد یک لوپ فور ، میخوایم با این شئ مربع رسم کنیم ، فعلا به لوپ کار نداشته باشید و به کدی که در لوپ رنگ ها هست دقت کنید.
توی خط اول ، با استفاده از name.color() رنگ شئ رو مشخص کردیم.
در خط دوم با استفاده از .pensize() اندازه قلم را مشخص کردیم که اگر دوست داشتید مربع ها ضخیم تر باشند میتونید تغییر بدید .
توی خط بعدی با استفاده از .left() به یک مقدار درجه ای به سمت چپ جهت شئ رو تغییر میدیم تا مربع جدیدی رسم کنید .
با استفاده از .forward() مقداری شئ را به سمت جلو حرکت میدهیم که در اصل با تغییر جهت شئ به دستور بالا ، جهت جلو رفتن تغییر میکند .
این کار را 4 بار انجام میدهیم تا یک مربع کامل رسم شود ( هر زاویه 90 درجه است )
حالا لوپ ها
لوپ اول ، برای کشیدن 15 مربع مختلف است که میتونید مقدار مربع ها رو به دلخواه تغییر بدید ، در لوپ دوم برای انتخاب رنگ مربع است تا افکت رنگارنگ بودن مربع ها رو داشته باشیم.
بیاید یک نمونه دیگر رو هم بررسی کنیم .
نمونه دوم :

بعد از اجرا کد رو بررسی کنید :
# ایمپورت
import turtle
# رنگ پس زمینه
turtle.bgcolor('black')
# تعریف شئ
tt = turtle.Turtle()
# اندازه مداد
tt.pensize(2)
# سرعت کشیدن
tt.speed(10)
for i in range(6):
# رنگ های مختلف
for color in ('red', 'magenta', 'blue',
'cyan', 'green', 'white',
'yellow'):
tt.color(color)
# کشیدن دایره به اندازه 100
tt.circle(100)
# تغییر زاویه قلم به اندازه ده درجه
tt.left(10)
# پنهان کردن قلم
tt.hideturtle()
turtle.done()