بسم الله الرحمن الرحيم
تحتوي لغة البايثون على العديد من المكتبات البرمجية لجميع الغايات مثل أرسال البريد الألكتروني و التعامل مع الملفات , و لكن المكتبة التي سأكتب عنها اليوم سيكون وظيفتها الرسم و صنع الأنماط , و لكن الهدف الحقيقي منها هو تعلم البرمجة بطريقة ممتعة و بسيطة , و يعود أصلها إلى لغة اللوغو الشهيرة .
- البرنامج الأول :
import turtle # أستيراد المكتبة البرمجية
wn = turtle.Screen() # أنشاء كائن خاص بالمكتبة
alex.forward(50) # تحريك السلحفاة للأمام مسافة 50
alex.left(90) # لكي تستدير السلحفاة بأتجاه اليسار مقدار 90 درجة
alex.forward(30) # لكي تتحرك السلحفاة بأتجاه الأمام مسافة 30
wn.mainloop() # أنتظر المستخدم لكي ينهي النافذة الخاصة بالبرنامج
سيكون ناتج هذا البرنامج هو الصورة التالية :
السطر الأول مألوف لجميع مبرمجي لغة بايثون و يستخدم لتحميل مكتبة Turtle , أما السطر الثاني فينشأ نافذة جديدة بأسم wn , و السطر الثالث ينشأ مؤشر رسم بأسم alex .
السطور البرمجية من الرابع للسطر السادس تحتوي على وظائف لتحكم بتحرك المؤشر , و كما يظهر فأسم الوظيفة البرمجية يدل على عملها مثل الوظيفة البرمجية left التي تجعل المؤشر يستدير بأتجاه اليسار بدرجة مقدرة من قبل المبرمج لذا منطقيا يجب أن تكون هنالك و ظيفة بالاسم right ليستدير المؤشر لجهة اليمين و ظيفة أخرى بأسم backward لرجوع للخلف .
- تحديد لون الخلفية و الخط :
لتحديد لون الخلفية يجب أستخدام الوظيفة البرمجية bgcolor , و لتحديد لون الخط الوظفية البرمجية color :
import turtle
wn = turtle.Screen()
wn.bgcolor("LightBlue") #تحديد لون الخلفية
alex = turtle.Turtle()
alex.color("white") #تحديد لون الخط
alex.forward(50)
alex.left(90)
alex.forward(30)
wn.mainloop()
wn = turtle.Screen()
wn.bgcolor("LightBlue") #تحديد لون الخلفية
alex = turtle.Turtle()
alex.color("white") #تحديد لون الخط
alex.forward(50)
alex.left(90)
alex.forward(30)
wn.mainloop()
هذه صورة لنتيجة تنفيذ البرنامج :
للمزيد من أسماء الألوان زر هذه الصفحة (http://www.tcl.tk/man/tcl8.4/TkCmd/colors.htm) ستجد قائمة مفصلة للألوان التي يمكنك أستخدمها .
- تغيير شكل مؤشر الرسم :
يمكن تغيير الشكل الأفتراضي لمؤشر الرسم بواسطة الوظيفة البرمجية shape :
import turtle
wn = turtle.Screen()
alex = turtle.Turtle()
alex.shape("turtle") # تحديد شكل المؤشر
alex.forward(50)
alex.left(90)
alex.forward(30)
wn.mainloop()
wn = turtle.Screen()
alex = turtle.Turtle()
alex.shape("turtle") # تحديد شكل المؤشر
alex.forward(50)
alex.left(90)
alex.forward(30)
wn.mainloop()
و هذه قائمة بالأشكال المتوافرة :
- سهم ( arrow )
- إلغاء المؤشر ( blank )
- المؤشر الأفتراضي ( classic )
- دائرة ( circle )
- مربع ( square )
- مثلث ( triangle )
- سلحفاة ( turtle )
- تحديد سرعة حركة المؤشر :
تستطيع تحديد السرعة بين المؤشر بواسطة الوظيفة البرمجية speed و يمكن تحديد القيمة بين 1 ( أبطأ سرعة ) إلى 10 ( السرعة القصوى ) .
import turtle
wn = turtle.Screen()
alex = turtle.Turtle()
alex.speed(1) # تحديد سرعة المؤشر
alex.forward(50)
alex.left(90)
alex.forward(30)
wn.mainloop()
wn = turtle.Screen()
alex = turtle.Turtle()
alex.speed(1) # تحديد سرعة المؤشر
alex.forward(50)
alex.left(90)
alex.forward(30)
wn.mainloop()
- ايقاف و أعادة عمل المؤشر :
في برمجنا السابقة يقوم المؤشر برسم الخط في أثناء تحركه بشكل أفتراضي , و يمكن أيقاف المؤشر عن الرسم بواسطة الوظيفة penup و أعادة تشغيلها بواسطة pendown :
import turtle
wn = turtle.Screen()
alex = turtle.Turtle()
alex.penup() # أيقاف عمل المؤشر
alex.forward(50)
alex.pendown() # تشغيل المؤشر
alex.left(90)
alex.forward(30)
wn.mainloop()
wn = turtle.Screen()
alex = turtle.Turtle()
alex.penup() # أيقاف عمل المؤشر
alex.forward(50)
alex.pendown() # تشغيل المؤشر
alex.left(90)
alex.forward(30)
wn.mainloop()
- الخاصية stamp :
عند أستخدام هذه الوظيفة سيترك المؤشر أثر مطابق له في مكان تطبيق الوظيفة :
import turtle
wn = turtle.Screen()
alex = turtle.Turtle()
alex.stamp() #ترك أثر للمؤشر
alex.forward(50)
alex.stamp() #ترك أثر للمؤشر
alex.left(90)
alex.forward(30)
wn.mainloop()
wn = turtle.Screen()
alex = turtle.Turtle()
alex.stamp() #ترك أثر للمؤشر
alex.forward(50)
alex.stamp() #ترك أثر للمؤشر
alex.left(90)
alex.forward(30)
wn.mainloop()
مع دمج هذه المكتبة مع إمكانية لغة بايثون ( الحلقات التكرارية و الوظائف البرمجية ) يمكنك أنتاج إبداعات رائعة مثل هذا المثال :
#!/usr/bin/python
import turtle
def draw_multicolor_square(t, sz):
"""Make turtle t draw a multi-color square of sz."""
for i in ["red", "purple", "hotpink", "blue"]:
t.color(i)
t.forward(sz)
t.left(90)
wn = turtle.Screen() # Set up the window and its attributes
wn.bgcolor("lightgreen")
tess = turtle.Turtle() # Create tess and set some attributes
tess.pensize(3)
size = 20 # Size of the smallest square
for i in range(15):
draw_multicolor_square(tess, size)
size = size + 10 # Increase the size for next time
tess.forward(10) # Move tess along a little
tess.right(18) # and give her some extra turn
wn.mainloop()
import turtle
def draw_multicolor_square(t, sz):
"""Make turtle t draw a multi-color square of sz."""
for i in ["red", "purple", "hotpink", "blue"]:
t.color(i)
t.forward(sz)
t.left(90)
wn = turtle.Screen() # Set up the window and its attributes
wn.bgcolor("lightgreen")
tess = turtle.Turtle() # Create tess and set some attributes
tess.pensize(3)
size = 20 # Size of the smallest square
for i in range(15):
draw_multicolor_square(tess, size)
size = size + 10 # Increase the size for next time
tess.forward(10) # Move tess along a little
tess.right(18) # and give her some extra turn
wn.mainloop()
و هذه نهاية هذا الدرس , أذا عندك أي تعديل أو أقتراح لا تترد شاركنا :-)
السلام عليكم
ردحذفبدايةً مرحباً بعودتك غانماً بإذن الله تعالي من وطيس الإمتحانات ^_^
البايثون من اللغات الجميلة و التي أحبها بشكلٍ شخصي جداً، و من مميزاتها إمكانية برمجة مكتباتٍ تعمل علي كافة أنظمة التشغيل المدعومة.
المكتبة التي ذكرتَها في المقال تُفيد جداً في الأمور التعليمية، و خاصةً إذا لأنها تُستخدم مع لغةٍ غايةٍ في السهولة مثل البايثون :)
و عليكم السلام و رحمة الله
ردحذفجزاك الله خيراً
كما قلت البايثون من أسهل و أقوى اللغات البرمجية , لذا أن شاء الله سوف أبدأ سلسلة سوف تكون الأولى عربياً أن شاء الله عن مكتبة opencv المتخصصة في التعرف على الأشكال في الصور و الفيديو و ذلك بأستخدام أكواد البايثون .
لو سمحت كنت عايزة أعرف انت نزلتها ازاى عشان بحاول أعمل زيك بس بيظهرلى خطأ
ردحذفرائع جداً , شرح سلس و سهل لسطور البرنامج استمر رعاك الله
ردحذفشكرا لك انا في المدرسه الان
ردحذفممتاز جداّاّ
ردحذفشكرا
ردحذفكيف اعرف ايش فيه في مكتبتي
ردحذفوكيف احمل المكتبات اذا ماكانت عندي المكتبة
تقدر تستخدم الأمر pip , الموضوع في لينكس بسيط بس ويندوز يحتاج شرح في موضوع مفرد له
حذفpip install turtle
ليه بالذات يختاروا السلحفاه في البرمجيات؟
ردحذفهذه المكتبة مستوحاه من لغة البرمجة logo اللي استلهمها مخترعها من حركة السلاحف على الشاطىء و الاُثر التي تتركه .
حذفhttps://en.wikipedia.org/wiki/Logo_(programming_language)
ياريت لو صوره لنتيجة الكود الاخير لنرى ماذا حصل
ردحذفتم التعديل , شكرا على الملاحظة
حذفشرح ممتاز وواضحز وسهل الفهمز يا ريت تستمرز ويعطيك العافيهز
ردحذفExcellent
ردحذف