السبت، 27 ديسمبر 2014

برمجة الشبكات في بايثون ارسال واستقبال البيانات

في الدرس السابق تعلمنا كيفية إنشاء مقبس والاتصال بالسيرفر ، وفي هذا الدرس سنتعلم كيفية إرسال واستقبال البيانات من والى السيرفر.
ولإرسال البيانات نقوم باستخدام الدالة sendall .
دعونا نقوم بإرسال بعض البيانات إلى قوقل .

برمجة الشبكات في بايثون

سيكون هذا الموضوع مدخلنا الى برمجة المقبس (socket) باستخدام لغة بايثون , ويعتبر المقبس من الأساسيات وراء كل عملية اتصال بالشبكة يقوم بها الكمبيوتر وعلى سبيل المثال عندما نقوم بالاتصال بمحرك البحث ونكتب www.google.dz على المتصفح يقوم الجهاز بفتح مقبس ويتصل بالموقع  لجلب الصفحة و إظهارها لنا، نفس العملية تنطبق على برامج الدردشة مثل gtalk او skype اي ان عملية اتصال بالشبكة تمر عبر المقبس.
في هذا الدرس سنقوم ببرمجة مقبس tcp باستخدام لغة البرمجة بايثون .
وقبل أن تبدأ يجب أن تكون على معرفة بأساسيات استخدام بايثون .

الخميس، 25 ديسمبر 2014

برمجة الألعاب باستخدام pygame رسم خط -الدرس الثالث

في الدرس السابق تعلمنا كيفية رسم مستطيل وبما أن الألعاب بحاجة إلى أشكال عديدة سنواصل تعلم أشكال أخرى وهذه المرة سنتعلم كيفية رسم خط على الشاشة ،سنقوم برسم خط أخضر بالإحداثيات التالية (تخيل أن النافذة عبارة عن معلم متعامد متجانس) ابدأ برسم الخط ابتداءا من النقطة (0,0) إلى غاية النقطة (100,100) وعرض الخط سيكون 5 بكسل.
لن أقوم بكتابة الكود من الجديد سأفترض أنك قمت بحفظ الملف السابق الذي قمنا بإنشائه وفي حالة عدم وجود الملف السابق أنصحك بالرجوع إلى الدروس السابقة واضف الكود التالي إلى البرنامج.

Green=( 0, 255, 0)#متغير جديد لتحديد اللون الأخضر

pygame.draw.line(screen, Green, [0, 0], [100, 100], 5)#رسم خط بالإحداثيات المحددة


هذا كل شيء كل ماعليك فعله عزيزي القارئ هو التعديل على الكود والاحداثيات ورسم خطوط أخرى حتى تتعلم بشكل وعليك ايضا بالبحث والقراءة لزيادة معارفك .

رسم شكل بيضوي 

إن رسم شكل بيضوي يحتاج إلى إحداثيات وهي نفس الإحداثيات الخاصة برسم مستطيل حيث عند رسم شكل بيضوي يقوم البرنامج برسم مستطيل على الذاكرة فقط ثم يقوم برسم الشكل البيضوي داخل حدود ذلك المستطيل .
ومباشرة مع الكود الخاص برسم الشكل البيضوي :

pygame.draw.ellipse(screen, Green, [20,20,250,100], 2)

الثلاثاء، 23 ديسمبر 2014

عكس السلاسل في بايثون

في بايثون لا توجد طريقة مباشرة لعكس سلسلة نصية، والطريقة الوحيدة لعمل ذلك هو باستعمال الترشيح .
إن عملية الترشيح تقوم باستخراج العناصر اعتمادا على ترتيب العنصر في السلسلة ويمكن استخراج مجموعة من العناصر من العنصر الأول من السلسة إلى غاية العنصر الذي يجب أن نتوقف عنده.

مجموعة عن عملية الترشيح
values="abcdefg"
values[1:3]
'bc'
 values[2:-1]
'cdef'
values[:2]
'ab'
values[2:]
'cdefg'
values[::2]
'aceg'
values[::-1]
'gfedcba'


يمكن استعمال مع كل من القوائم ، السلاسل ، الصفوف، والمصفوفات.
في المثال السابق في السطر قبل الأخير  قمت باستخدام [1::] وهذا الترشيح يقوم بعكس السلسلة تماما وهذه هي الطريقة الوحيدة لعكس السلاسل في بايثون .

name="kader"
name[::-1]
'redak'

السبت، 13 ديسمبر 2014

برمجة الألعاب باستخدام pygame رسم مستطيل -الدرس الثاني

في الدرس السابق قمنا بانشاء نافذة ذات خلفية بيضاء وبدون اي رسومات أو اضافات عليها، وفي هذا الدرس سنقوم برسم مستطيل على تلك النافذة.
يمكننا رسم العديد منن الأشياء مثل المستطيلات، المضلعات،الدوائر، الأقواس والخطوط كما سنكتشف أيضا عرض النصوص مع الرسومات ومن خلال الرابط التالي يمكنك رؤية جميع الأشياء التي يمكنك رسمها.

الجمعة، 12 ديسمبر 2014

برمجة الألعاب باستخدام pygame انشاء أول نافذة -الدرس الاول

حتى الان وفي جميع مواضيع المدونة لم نتطرق بعد الى كيفية فتح النوافذ في برامجنا كما تفعل معظم البرامج الحديثة، والكود الذي سنستعمله في فتح النوافذ ليس معقد أو صعب وهو من أساسيات pygame ويستعمل دائما عند إنشاء الألعاب، وفيما يلي الكود سيقوم باستدعاء مكتبة pygame و فتح نافذة بعرض 700 وطول 500 بكسل.

الخميس، 11 ديسمبر 2014

عبارات else

في المرة السابقة تكلمنا عن عبارات IF والتي تسمح لنا بكتابة برامج مثل :
print "What's your name?"
name = raw_input()
print "Hello " + name + "!"
if name == "Abdelkader ":
    print "Hey wait a minute! That's not your name is it?!"
وسيعرض لنا البرنامج مايلي :

What's your name?
َAbdelkader
Hello Abdelkader!
Hey wait a minute! That's not your name is it?!
او

What's your name?
Kader
Hello Kader!


اذا لماذا يقوم برنامجنا بترحيب المستخدم Abdelkader اذا كان اسمه غير صحيح؟
دعونا نقوم بتعديل الكود ليصبح مفهوم اكثر.
print "What's your name?"
name = raw_input()
if name == "Abdelkader":
    print "You're not fooling anybody you know."
else:
    print "Hello " + name + "!" 

نقوم بحظ البرنامج ونجربه من جديد ونرى مالذي يحدث:
What's your name?
َAbdelkader
You're not fooling anybody you know
أو

What's your name?
Kader
Hello Kader!
 
اذا كان لدينا عدة خيارات نريد اختبارها يمكننا استخدام if لاختبار الشرط الأول فاذا كان صحيح فهذا جيد واذا كان الشرط الاول غير صحيح يمكن استخدام else لتنفيذ بقية البرنامج

10 مشاريع صعبة للمستوى المتوسط ​​لتعزيز مهاراتك في بايثون ومحفظتك

  هل تريد تسريع عملية   التعلم ؟ هل سئمت من عدم ثقتك بنفسك بما يكفي لوصف نفسك بالخبير؟ أو ربما تكون كذلك، ولكن في أعماقنا نعلم أن هذا ليس صح...