Quantcast
Channel: بلندر و بايثون
Viewing all 10 articles
Browse latest View live

الدرس الثالث من تعلم بايثون ..الدوال Functions

$
0
0

الدوال …Functions


النقاط الأساسية :

1 – مقدمة .
2 -  الوحدة ….Module
 3 -  كيفية تعريف دالة جديدة.
4 -  دوال بمدخلات ..Argument
5 – مثال لحساب حجم  إسطوانة.

قبل البدء

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

ص = س – 1
# نكتبها كدالة هكذا
 ص=د(س) = س – ا

يعنى عند تغيير قيمة س تتغير قيمة ص تبعا لهذا التغير فنقول ؛ د(5)= 5 – 1 إذا د(5) = 4 يعنى قيمة ص عندما نضع قيمة س بخمسة . الرقم الذى بين القوسين يسمى مدخل argument و النتيجة تسمى القيمة المرجوعة أو العائدة return value إذا الدالة تأخذ قيمة مدخلة و تعطيك نتيجةو هناك دالة تأخذ قيمتين مثلا :

دالة ج = د(س , ص ) = 6س + 7 ص
د(5 ,3) = 6 * 5 + 7 * 3

و قد تتعدد المدخلات و تكون دالة ج دالة فى (س و ص ) و هذا تبسيط جدا لمفهوم الدوال فهى مجال واسع فى علم الرياضيات .

الدوال فى بايثون

لكل دالة إسم معين تستدعيها به فمثلا دالة تحديد النوع type

>>> type(“32″)


# لاحظ أنه حدد النوع كنص لإنها بين علامتى تنصيص

>>> srings = type(“32″)
>>> print strings
>>> type(32)

كتبنا إسم الدالة و بعدها قوسين و بينهم المدخل المراد تطبيق الوظيفة المعينة عليه و هى تحديد نوع المتغير .

>>> type(32.01)


هنا حدد المتغير 32.01 كرقم عشرى float .
دالة int تحول الرقم العشرى float أو الرقم الذى بين علامات تنصيص و تحوله إلى رقم صحيح integer و لا تقبل النصوص

>>> int(“32″)
32
>>> int(3.99999)
3
>>> int(“World”)
ValueError: invalid literal for int() with base 10: ‘World’

و كذلك دالة float تأخذ متغير العدد الصحيح و تحوله إلى عشرى و العدد العشرى الذى بين علامات تنصيص و لا تقبل النصوص أيضا .

 >>> float(32)
32.0
>>> float(“3.14159″)
3.14159

و دالة str التى تغير نوع المتغيرات إلى نوع نصى

>>> x=5
>>> x=str(x)
>>> type(x)


>>> str(5.555)
‘5.555′
ما الفائدة من تحويل الرقم الصحيح إلى عشرى ؟
أكتب هكذا و تأكد من النتج
>>> minute = 59
>>> minute/60
0
الناتج صفر لماذا ؟ لإنه المفسر يقوم بإخراج النتائج بالأعداد الصحيحة فقط و ما الحل ؟ الحل هو جعل نوع المتغير minute كنوع عشرى بالدالة float
>>> float(minute) / 60
0.98333333333333328

أو كتابة المقسوم عليه 60 هكذا 60.0 فيعرف المفسر أن نوع هذا المتغير رقم عشرى .

>>> minute = 59
>>> minute / 60.0
0.983333333333

هذه بعض دوال البايثون و هى كثيرة جدا .
الوحدة …. Module
الوحدة هى ملف يحتوى على مجموعة دوال لغرض معين و الوحدة يجب عمل إستيراد لها مثلا يوجد فى البايثون وحدة الرياضيات بها مجموعة دوال للعمليات الرياضية مثل حساب الزوايا المثلثية ” جا و جتا و ظا و .. “ و كيفية إستيراد الوحدة باﻷمر import و لابد من عمل إستيراد قبل تنفيذ أى دالة منها .

>>> import math

لإستخدام دوال الوحدة تكتب إسم الوحدة متبوعا بنقطة و بعدها إسم الدالة ” و القوسين لإدخال المدخلات ”

>>> x=math.log10(30.0)
>>> print x
1.47712125472

هذاالدالة لحساب لوغاريتم 30.0 للأساس 10 و لو لم نكتب الرقم 10 تصبح دالة اللوغاريتم للأساس الطبيعى e
أفتح محرر النصوص المفضل لديك و أكتب هذا البرنامج البسيط

import math
angle=input(” Enter your angle ..” )
print “the result sin(your angle is ” , math.sin(angle)
print “the result cos(your angle is ” , math.cos(angle)
print “the result tan(your angle is ” , math.tan(angle)

السطر الأول هو إستيراد للوحدة التى نريدها و السطر الثانى هو متغير إسمه angle بدالة الإدخال input و هى دالة إدخال لا تقبل إلا الأرقام فقط .

و السطر الثانى هو الأمر print و به دالة جيب الزاوية sin و هكذا إستخدمنا cos و tan . كما يمكن وضع مصطلح أو تعبير ( expression) كمدخل( argument ) للدوال و الدالة ما هى إلا تعبير فمثلا :

x = math.sqrt(math.log(10.0))

قمت بإدخال دالة آخرى داخل الدالة الأصلية فالدالة الأصلية () math.sqrt هى لحساب الجذر التربيعى للمدخل و المدخل عبارة عن دالة تحسب قيمة اللوغاريتم .
كيفية تعريف دالة جديدة
تستطيع بلغة البايثون أن تقوم بتعريف دالة “وظيفة ” جديدة لإستخدامها و الفائدة من عمل دالة هى توفير للخطوات فتقوم بعمل دالة تنجز وظيفة معينة فيما بعد فهى تقلل أسطر البرنامج و تسهل عمل مراجعة و تطوير للبرنامج و تفوق بايثون فى هذا المجال بشكل ملحوظ فهى لغة مفضلة عند علماء الرياضيات و الباحثين و المهندسين و مصممى الرسوم ثلاثية الأبعاد و برمجة الألعاب فهى أشهر اللغات فى برمجة الألعاب فهى قوية و سهلة .. تعالى نتعرف عن كيفية تعريف دالة جديدة داخل البايثون . لماذا تسمى بتعريف ؟ لإنك بكل ببساطة تقوم بتعريف المفسر أن هذه دالة سيستخدمها و تعريف الدالة يبدأ بكلمة def ثم إسم الدالة ثم قوسين ثم تنهيها بـ : و هذا يسمى رأس الدالة و الجزء الثانى يبدأ فى السطر التالى للرأس بعد أربعة مسافات من أول السطر و يكون فيه الأوامر و البيانات المختلفة (STATEMENTS) فلنضرب مثال لتعريف دالة ..

def NAME( LIST OF PARAMETERS ):
STATEMENTS

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

def your_name():
print “ Your name”

هذه دالة تقوم بطباعة إسم Your name إسمها your_name و الأقواس الفارغة () تشير إلى أن هذه الدالة لا تأخذ مدخلات و السطر الثانى يحوى بيان (STATEMENT ) للطباعة .

و كيفية إستخدامها فى ملف نصى (script) هكذا ” قد سبق و بينت فى المقال الأول الفرق بين كتابة البرنامج فى ملف نصى script و إستخدام المفسر التفاعلى للغة البايثون بكتابة كلمة python فى سطر الأوامر “
def your_name():
print ” Your name “
your_name()
و ناتج هذا البرنامج سيكون تنفيذ أمر الطباعة .فأستخدام الدالة هو بكتابة إسمها متبوعا بقوسين و لو كانت تحتاج مدخلات فتكتب داخل القوسين المدخلات كما سنوضح و لو لا تحتاج فتكون كما هى فارغة .
يمكن إستدعاء دالة داخل دالة آخرى فلنرى فى هذا المثال و لنفترض إن البرنامج يحتوى على الدالة السابقة أيضا , و نضيف دالة جديدة
def my_name():
print “ My name is sherif “
و الدلة القادمة ستحوى الدالتين السابقتين your_name و my_name

 

def my_your_name():
my_name()
your_name()

ثم تقوم بتنفيذها فى سطر جديد () my_your_name
سيكون شكل الملف النصى هكذا

 

def your_name():
print ” Your name “
def my_name():
print ” My name is sherif “
def my_your_name():
my_name()
your_name()
my_your_name()

و الناتج سيكون هكذا” نكتب بايثون متبوعة بإسم الملف my_your_name.py “

[sherif@localhost ~]$ python my_your_name.py
My name is sherif
Your name

لاحظ أنه عندما تستدعى دالة فمن المنطقى أن تكون معرفة مسبقا فالمفسر يبدأ البرنامج من السطر الأول ثم الثانى و هكذا فلابد من الترتيب فى تعريف الدوال و إستدعائها .

دوال بمدخلات argument

لتعريف دالة بمدخلات لابد بوضع بارمتر داخل القوسين و البارمترات هى كالمتغيرات لكنها قاصرة على الدالة فقط فمثلا

def two_man(man):
print man , man

لإستدعاء الدالة ضع مدخلات مكان البارمتر man نكتب الدلة و بين القوسين أى قيمة بدلا من كلمة man و هذه الكلمة يمكن تغييرها لأى إسم

two_man(“sherif”)
two_man(555)

 

الناتج بعدها
sherif sherif
555 555
يمكن وضع بيان فى المدخل فمثلا
two_man(6*4)

 

أو متغير سبق إدخاله
dist=” Fedora and Joatha “
two_man(dist)

 

سيكون الناتج بطبع المتغير مرتين .

و يمكن تعريف دالة بمدخلين مثلا نقوم بعمل دالة لجمع شيئين
def cat_twice(part1, part2):
cat = part1 + part2
print cat
هنا سيأخذ قيميتن و لتنفيذ الدالة لابد من إدخال قيمتين عددية أو نصية
cat_twice(“me “,” you”)
cat_twice(5,10)
سيضم كلمتين me و you و سيجمع الرقمين 5 و 10 جرب أنت بنفسك و شكل الملف النصى سيكون هكذا
def cat_twice(part1, part2):
cat = part1 + part2
print cat
cat_twice(“me “,” you”)
cat_twice(5,10)

لاحظ هنا أن هناك متغير داخل الدالة إسمه cat حاول عمل أمر طباعة له print cat ستجد أن المفسر يعطيك خطأ معناه أن هذا المتغير لم يتم التعرف عليه .. لماذا ؟ لإن المتغيرات داخل الدوال محلية و قاصرة على داخل الدالة فقط و ليس لها أى علاقة بباقى البرنامج .
الدوال المنتجة و الغير منتجة
إستكمالا على البرنامج السابق قم بعمل متغير يساوى الدالة (cat_twice(5,10 و سمه مثلا result

result=cat_twice(5,10)
print result

ستجد أن قيمة result هى None لكـن لماذا ؟ و لماذا الدوال الآخرى كدوال وحدة math تقوم بحفظ القيمة ؟

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

import math
def area(radius):
temp = math.pi * radius**2
return temp
area_c=area(5)
print area_c
فى هذا البرنامج لن يعطيك قيمة المتغير بـ None بل سيعطيك قيمة حقيقية و يمكن إختصار الدالة هكذا
def area(radius):
return math.pi * radius**2

و لكن السابقة أفضل عند مراجعة البرنامج و إكتشاف الأخطاء . و دالة math.pi هى قيمة باى أو ط 22/7 أو 3.14 .

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


import math
def area(radius):
temp = math.pi * radius**2
return temp
def cylender_valume(h,r):
return 0.0

و قم بتجربة البرنامج أولا و تأكد من عدم وجود أخطاء و بعد ذلك سنبدأ بحساب مساحة القاعدة و هى بإستدعاء الدالة الأولى لحساب مساحة الدائرة و أعلم أنه أى سطر برمجى بعد جملة return ليس له أى قيمة فالإضافة ستكون قبلها فستصبح الدالة هكذا

def cylender_valume(h,r):
radius = area(r)
return 0.0
و قم بتجربة البرنامج و تأكد من عدم وجود أخطاء و بعد ذلك نبدأ بحساب الحجم
def cylender_valume(h,r):
radius = area(r)
valume = h * radius
return 0.0

تأكدت أن البرنامج صحيح ؟ قم بعمل return للحجم و بعد ذلك نريد عمل مدخلات و تطبيق للدالة و إنهاء البرنامج

و يصبح شكل البرنامج النهائى هكذا

import math
def area(radius):
temp = math.pi * radius**2
return temp
def cylender_valume(h,r):
radius = area(r)
valume = h * radius
return valume
R = input(” Enter the radius of cylender ” )
H = input(” Enter the height of cylender ” )
valume = cylender_valume(R,H)
print valume

و لنا لقاء بمشيئة الله تعالى فى العدد القادم .


“لا إله إلا الله محمد رسول الله”بالكوفي التكعيبي على بلندر

أفضل برنامج للتنزيل على لينكس

$
0
0

downthemall

السلام عليكم و رحمة الله و بركاته

أرى أن الجميع يشتكى من عدم وجود برنامج IDM -و هو عملاق التنزيل على ويندوز – على لينكس . و البديل الذى يتكلم عنه الجميع هو WGET و أنا جربته و هناك العديد من البرامج مثل WXfast
و هذا به مشاكل كثيرة منها ان الملفات تحدث لها مشكلة قبل الإنتهاء و الإغلاق المفاجئ بكثرة و هذه قائمة من البرامج التى جربت منها العديد

http://linuxappfinder.com/internetandnetworking/downloadmanagers

و لن تجد فيها ما يرضيك .
لكن الذى أعجبنى و أذهلنى هى إضافة فى الفايرفوكس .. DTA
DownThemAll! 1.1.0
إنه أفضل أداة مجانية للتنزيل على ويندوز و لينكس و كل المنصات التى يعمل عليها الفايرفوكس ..
قم بالتركيب فورا و جرب و أدعوا لى بالخير و النجاح

https://addons.mozilla.org/en-US/firefox/addon/201

و لأكثر كفائة ركب FlashGot

https://addons.mozilla.org/en-US/firefox/addon/220

المصادر الحرة خير بديل (تصميم مع ملف العمل)

$
0
0
المصادر الحرة خير بديل

المصادر الحرة خير بديل

تصميم المصادر الحرة خير بديل -بلندر ثرى دى

الصندوق المغلق هو المصادر المغلقة و  البديل هو الصندوق المفتوح المصادر الحرة ..

و ملف العمل badeel

دورة تعليمية جديدة لبلندر بالعربى

$
0
0
المصادر الحرة خير بديل

المصادر الحرة خير بديل

السلام عليكم ورحمة الله وبركاتة
هذة الدورة مخصصة لتعليم برنامج البلندر وهو افضل برنامج حر للتصميم ثلاثى الابعاد وسوف تحتوى تلك الدورة باذن الله على شروحات للبرنامج و فيديوهات وترجمة للمقالات والفيديوهات الاجنبية وسوف نركز على شرح البرنامج عن فهم وذكر المصطلحات الانجليزية بمرادفها العربى (الذى هو فقط لادراج المعنى ) ,

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

ما هو البلندر ؟
بداء العمل على مشروع البلندر لاول مرة فى ديسمبر 1993 , ثم اصبح منتج قابل للاستخدام فى اغسطس 1994 كبرنامج متكامل الرسومات الثلاثية الابعاد (الثلاثية الابعاد بتلوين ثنائى الابعاد ايضاء (انظر الصورة رقم 1 بالاسفل للتوضيح))
, البلندر يقدم مجموعة ممتازة متكاملة من ادوات النمذجة modeling و والاكساء (تلوين الشكل) texturing والاضاء lighting والتحريك animation والتعديل على الفيديو (للتعديل على فيديو التحريك الناتح من البرنامج واضافة التاثيرات ) video post-processing
البلندر عبارة عن حزمة برمجية تحتوى على كل ذلك عابرة للمنصات (تعمل على اكثر من نوعية كمبيوتر ونوعية نظام تشغيل ) crossplatform , البلندر متقن من الناحية البرمجية مما يجعل قابل للاتساع (مستقبلا ) وحجم حزمتة صغير(يدل على براعة مبرمجينة تقليل حجم الحزمة رغم امكانيات الرهيبة للبرنامج ) ويعتبر بيئة متكاملة للعمل , البلندر من اكثر البرامج التصميم ثلاثية الابعاد المفتوحة المصدر انتشارا فى العالم .
يستخدمة المصممين المحترفين ومحترفين الانتاج , يتم استخدام البلندر لانتاج الموثرات الثلاثية الابعاد 3D visualizations , والاعمال الساكنة (الصور الثابتة ) stills وافلام السينما والفيديو عالي الجودة وحتى الاعمال الوقت الحقيقى (مثل الالعاب تفاعليا لحظة بلحظة ) مما يسمحلك بعمل انتاج تفاعلى (بامكانك جعل اعمالك تفاعليا مثل الالعاب ) ويمكن استعمالة كمحرك العاب ( يسمح لك بانتاج العاب تفاعلية منة ) .
طور اساسا بواسطة شركة نان nan ثم قام بشراء المتجتمع الحر ليتم تطويرة بعد ذلك تحت رخصة جنو gnu (سيتم التلميح لمعنى الرخصة فى الموضوع )
ويتم تطويرة حاليا بواسطة مطورين من مختلف انحاء العالم . بدعم من مستخدمية (ماديا و تقنيا اختياريا) ومطورين (بعضهم باجر والاخر تطوعا )
وهو يتطور بسرعة كبيرة يفوق باقى البرامج
هذة صورة توضيحية لسرعة تطويرة من دراسة اجرتها CGENIE

صورة 1 لايضاح الفرق بين عمل ثلاثى الابعاد باكساء واقعى او اكساء كرتونى toon shaded(والذى يظهر كانة 2d او مرسوم باليد )

ويمكن وصف البلندر بالاتى
-حزمة انتاج متكاملة , يوفر كل ما تحتاجة كمصمم رسومات ثلاثية الابعاد عالية الجودة .
-عابر للمنصات ويمكن القول ان يوجد لة نسخ لمعظم المنصات والاجهزة .
-متقن برمجيا وبنية جرافيكيا قوية مما يجعلة بيئة عمل قوية وفعالة .
- يستعمل اكثر من مئتى الف حول العالم .
-يحتوى على مجتمع فعال للدعم والدروس والشرحات (انوى الترجمة منها باذن الله ) .
-حجم صغير و اصدارات لمختلف المصات ونظم التشغيل .

لمعرفة معنى البرامج الحرة انصحك بقراء هذة الفصل من الكتاب للاستاذ مويد السعدى
لماذا يجب أن تكون البرمجيات حرة؟
لماذا يجب أن لا يكون للبرمجيات مالكون

خطوات العمل لانتاج اعمال ثلاثية الابعاد

مرحلة النمذجة modeling
هذة المرحلة تختص بتصميم الشكل المجسم (قد يكون بدون الوان او موثرات ) حيث يتم بالبداية من اشكال اساسية primitive (مكعب cube او كرة sphere وما الى ذلك من الاشكال البسيطة) ويتم تركيبها معا والتعديل عليها بواسطة ادوات النمذجة حتى يتم الوصول الى الشكل المطلوب (حتى افلام هوليود يتم النمذجة بتلك الطريقة ) وتكون تلك المرحلة هى المرحلة الاساسية من مراحل تكوين المشهد .
بعض الصور لمرحلة النمذجة modeling

او اكثر ضخامة كهذة

مرحلة الاكساء (التلوين ) texturing
عندما نقوم بالرسم العادى بالفرشاة والالوان نقوم برسم الشكل دون الوان بالقلم الرصاص (يمكنك اعتبارها مرحلة النمذجة modeling ) وبعد ذلك نقوم نقوم بتلوينها . الاكساء texturing هو يعتبر التلوين بالنسبة للاشكال المجسمة . لكن تتم بشكل اوسع قليلا حيث التاثيرات shaders مثل (الانعكاس reflection , وتشتت الضوء على الجسم )

بعض الصور لمرحلة الاكساء texturing

مرحلة الاضاء lighting
بعد الانتهاء من النمذجة والاكساء وتريد عرض المشهد سيكون المشهد مظلم (مع ان الواقعى ان البرنامج يحتوى على اضاء اساسية ) لذلك ستحتاج الى اعداد الاضاء للوصول الى الاضاء التى تريدها (اضاء تشبة اضاء الشمس و اضاء المصباح او الشمع او ماتريد )

مرحلة التحريك animation
عند انتهائك من المشهد او الشكل يمكن الاكتفاء بة ساكن لكن احيانا نريد انتاجة على شكل عمل متحرك (كالافلام والالعاب ) فتقوم فى تلك المرحلة بتهيئة المشروع و الاجسام للتحريك (حتى يسهل تحريكها بعد ذلك ) وهى تحتوى كثير من الادوات لتلك المرحلة
التعديل على ناتج العمل post-processing editing
بعد انتهائك من العمل قد تريد التعديل على الصورة الناتجة او الفيديو الناتج و دمجة مع مشاهد اخرى واضافة التاثيرات (غير التاثيرات الموجودة فى المشهد المجسم ) وتلك المرحلة غالبا تكون الاخيرة قبل اصدار عملك

انتهيت من الجزء الاول من الدورة والذى هو يعتبر مقدمة الى التصميم ثلاثى الابعاد ومعرفة المبادى الاساسية للتصميم ثلاثى الابعاد وساتطرق باذن الله الى واجهة البرنامج فى الجزء الثانى

بالتوفيق

المصدر من مجتمع لينوكس العربى

http://www.linuxac.org/forum/linuxac40/thread24328.html

لعبة مدينة السلام مصنوعة ببلندر

$
0
0

بسم الله الرحمن الرحيم

والصلاة والسلام على سيدنا محمد وعلى آله وصحبه أجمعين والحمد لله الذي هدانا إلى نعمة الأسلام والإخلاص .


قام إخوة من منتدى المنابر ببداية عمل اللعبة و هى الآن جاهز للتحميل

بعد عناء طال 9 أشهر من العمل اليومي ( بين ساعه ونصف XXX والساعتين ونصف ) تمكنت من صناعة أول لعبه Fps عربيه ببرنامج البلندر .

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

أما أنا المسكين والفريق المتواضع معي نستخدم برامج البلندر والمايا والسينما 4D , طبعاً هذه البرامج لها قوتها وقدراتها لكن لا يمكن مقارنتها مع البرامج التي تستخدمها الشركات العملاقه في صناعة الألعاب ومنها على سبيل المثال شركة UBISOFT العملاقه صانعة الألعاب .

لقد قمت بتجربة اللعبه مراراً وتكرارً لأصلح عيوبها وأخطاءها وهو عمل شاق في الحقيقه , لكن ولله الحمد أصلحت الكثير منها وقد جربتها ووجدتها جيده وسريعه وخاليه من المشاكل إلا أنها تتأخر في وقت قليل جداً جداً في التشغيل في المرحله الثانيه والثالثه وأما أثناء اللعب في جميع المراحل سريعه بدون أي مشاكل

طبعاً يعتمد هذا على مواصفات الجهاز وقد كتبتها في برنامج تثبيت اللعبه !

أعضاء الفريق في هذه اللعبه :

أخي ورفيق دربي الأخ donjwan88 مصمم الطائره العاموديه والشخصيه والرادار برنامج المايا .

أخي ملك الحريه مصمم البندقيه للعدو وبعض التصميمات الأخرى .

أخي الحبيب C.4d مصمم الجهاز اللاسلكي وكذلك هو الذي أخبرني عن تشغيل السيناريوهات في البلندر .

أخي الكريم شجرت التوت مُعد السيناريوهات .

وأخي الفاضل داخل برا الذي قام بعمل بعض خامات اللعبه .

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ ــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

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

بسم الله الرحمن الرحيم

والصلاة والسلام على سيدنا محمد وعلى آله وصحبه أجمعين .

وأرجوا من جميع الأعضاء الفريق الكرام أن لا نهمل واجباتنا الدينيه والإجتماعيه وراء هذا المشروع ولكن متى وجدنا الوقت الكافي لذلك نعمل ونجتهد حتى ننتهي من مشروع هذه اللعبه إن شاء الله تعالى .

قصة اللعبه :

القصه هي أن الأعداء بدئوا يتجهون إلى محاصرة مدينة السلام لكي يحتلوها ويبيدوا أهلها وأن قواتنا البريه بعيده جداً عن المدينه فلا يمكن الوصول إليها في الوقت المناسب وهذا يحتاج إلى تدخل عسكري فوري لإرغام العدو على التراجع وعدم محاصرة المدينة وإنقاذ أهلها فلا توجد وسيله أخرى إلا وسيله واحده فقط وهي إرسال الطائرات الحربيه لقصف العدو ودحره وإبعاده عن المدينه ولكن توجد مشكله خطيره جداً على الطائرات وهي قوة الدفاع الجوي للأعداء .. فلديهم منظومه صواريخ متطوره جداً تم نصبها على بُعد 40 ميلاً من مدينة السلام فلا تستطيع الطائرات أن تخترق هذه الشبكه الدفاعيه إلا أن يتم تدميرها بالكامل وكذلك تعطيل الرادارات الخاصه بها وهي التي تقوم بتوجيه الصواريخ نحو الطائرات .. إذاً كيف سيتم إنقاذ المدينه وما هو الحل المناسب لذلك وكيف سيتم القضاء على هذه الشبكات الدفاعيه وإنقاذ المدينة ؟!

الحل :

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

الدعم المطلوب :

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

كذلك سوف يتم دعم المقاتل بطائره عاموديه ستقله إلى المكان المطلوب فيه تنفيذ المهمه وكذلك عندما تنتهي المهمه بنجاح ستقله بعيداً عن ذلك المكان والتوجه إلى المرحله المقبله .

وكذلك سيتم دعم المقاتل بأسلحه مختلفه على حسب المهمه وتتكون من مسدس ( أساس في كل المراحل ) وبندقية كلاشنكوف وبندقيه M16 وسلاح خفيف كاتم للصوت .

وكذلك يمكن للمقاتل الإستيلاء على مركبات العدو في حالة الحاجه إليها .

من جوانب اللعبه :

- اللعبه ستكون للاعب واحد فقط ( يعني لا يوجد أكثر من لاعب في نفس الوقت ) .

- ستكون اللعبه مجانيه لكسب شهرتها بين أعضاء المنتدى وغيرهم .

- مراحل اللعبه ستكون ثلاث مراحل فقط لأنها Demo وهذا لا يعني أن اللعبه لاتوجد نهايه لها وتحقيق الهدف المطلوب .

- المرحله الأولى هي للبحث والإستيلاء على المتفجرات وتهريبها خارج معسكر العدو .

- المرحله الثانيه زرع المتفجرات على منصات الصواريخ للأعداء وقتل جميع الحراس المتواجدين عند كل منصه .

- المرحله الثالثه هي وقف جميع الرادارت الخاصه بالعدو ( الأنذار المُبكر ) لتتمكن الطائرات من الوصول في الوقت المناسب دون إكتشافها لإنقاذ المدينه .

- ستبدأ اللعبه بسيناريو تقدم قوات الأعداء إلى مدينة السلام لمحاصرتها وإحتلالها ( السيناريو راح يكون بالفيديو وإن لم نجد فبالصور والنصوص أو بإستعانة سيناريو مشابه للذي نريده ) وأنا أرى أن يكون السيناريو من صنعنا نحن إذا إستطعنا ذلك بإذن الله تعالى … وكذلك سيناريو عند إنتهاء كل مرحله بنجاح يظهر فيه عمليات التفجير عن بُعد بشكل تلقائي وهذا يدل على نجاح هذه المهمه .

- نهاية اللعبه ستكون عباره عن سيناريو يظهر فيه الدمار الهائل الذي لحق بالأعداء من جراء القصف بالطائرات .

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

لوحة التحكم :

- حركة الكاميرا الحره بإستخدام الفأره في جميع الإتجاهات .

- إطلاق الرصاص بزر الفأره الأيسر .

- والتقريب والتبعيد ( zoom ) بزر الفأره الأيمن .

- حركة اللاعب على الأرض بإستخدام الأزرار ( WASD ) على لوحة المفاتيح .

الأعمال المطلوبه من الفريق :

- ميادين اللعبه بشكل عام – تلال – أشجار – مستودعات – سحب – ترتيب وتنظيم وإخراج اللعبه .. الخ ( متوفر ) عضو الفريق المكلف بها فلاشي 8 .

- صواريخ ومنصاتها ( متوفر ) عضو الفريق المكلف بها فلاشي 8 و الأخ ملك الحريه .

- طائره عاموديه ( متوفر ) عضو الفريق المكلف بها الأخ Donjwan88 .

- شخصيات عدائيه ( غير متوفر )عضو الفريق المكلف بها الأخ Donjwan88 وتكفي شخصيه واحده أو أثنتين .

- سيناريوهات خاصه بقصة اللعبه ( غير متوفر ) عضو الفريق المكلف بها غير معروف حتى الآن .

- قنابل مؤقته ( متوفر ) عضو الفريق المكلف بها الأخ ملك الحريه .

- أشياء أخرى ( سوف أوفرها أنا شخصياً ).

الـ Menu

تتكون هذه القائمة من :

- بدأ اللعبه .

- لوحة التحكم .

- عن اللعبه .

- خروج .

- تأكيد الخروج .

الصوتيات :

- صوت مدفع رشاش ( متوفر ) فلاشي 8 .

- صوت مياه الوديان (( متوفر ) فلاشي 8 . .

- صوت حيوانات ليليه ( متوفر ) فلاشي 8 .

- صوت مدرعات تتحرك تدريجياً ( متوفر ) فلاشي 8 . .

- صوت بنادق خفيفه ( متوفر ) فلاشي 8 . .

- صوت رياح ( متوفر ) فلاشي 8 . .

- صوت إنفجارات ( متوفر ) فلاشي 8 .

- صوت فتح وإغلاق الأبواب ( متوفر ) فلاشي 8 . .

- صوت إنذار مبكر والتحذيرات ( متوفر ) فلاشي 8 .

- صوت مشي على الأقدام ( متوفر ) فلاشي 8 . .

- صوتيات أخرى جانبيه ( متوفره ) فلاشي 8 .

ملاحظه :

يجب أن تكون جميع صيغ الصوتيات بإمتداد WAV وبجوده عاليه .

متعلقات أخرى :

سوف أحاول جمعها وتوفيرها بنفسي .

- أي ملاحظات على المسوده أرجوا توضيحها لكي يتم التعامل معها بأسرع وقت ممكن .

أخوكم عضو الفريق : فلاشي 8

أعضاء القريق الكرام :

العضو منظم اللعبه العام : فلاشي 8

العضو مصمم : donjwan88 .

العضو مصمم : ملك الحريه .

العضو مصمم : C.4D .

العضو صوتيات وخامات : داخل برا

ملاحظه مهمه للمصممين :

يجب مراعاة تقليل أكبر عدد ممكن من الـ Vertex يعني النقاط حتى لا يصير العنصر ثقيل جداً ويصعب التعامل معه وكذلك قد يتسبب في بطئ شديد في اللعبه نفسها ! __________________________________________________________________________

طبعاً لم يُطبق كل ما في المسوده وكذلك تم تطبيق أشياء أخرى لم تُذكر في المسوده !

تحميل اللعبه :

آخر تحديث للعبه 2-6-2009

MdenatAlSlam2-6-2009.zip

Copy of (2) MdenatAlSlamStartGame2.zip

أكمــــــــــــــل من هنـــــــــــــــــا

http://www.maxforums.net/showthread.php?t=147867

من يساعدنى ؟

$
0
0
السلام عليكم و رحمة الله و بركاته

الحقيقة أنا الآن أصبحت أبتعتد كثيرا عن برنامج بلندر
تعلمون إنى أنشئت مدونة مع الرابطة في 26/10/07 شهر أكتوبر عام 2007
كنت أظن أن ليس لها أهمية كبيرة
من أيام ركبت plugin stats ليوضح لى الزيارات و دخول محركات البحث و جدت إن الزيارات عدد جيد لا بأس به
قد يصل إلى 100 فى اليوم و أكثر

أنا أريد من يكمل معى المسيرة لنجعل المدونة مرجع لمستخدمى البلندر
إن كان المدونة هى جهد فرد فماذا لو تضافرت الجهود ؟؟

نحتاج شباب البلندر
و مبرمج بايثون إن وجد

تقسيمة المدونة كما أراها :

ليس مهم أن تكون عربية بقدر أن يتم تجميعهم و تكون مرجع للمبتدئين فى البرنامج

لى مشاريع لعمل دروس و مقالات عن البايثون و البلندر .. لكن الوقت الحالى لا يسمح بأى شئ

منتظر تفاعلكم 2 – دروس الإضاءة و الرندر بالترتيب أيضا بالنسبة للمبتدئ ثم المستوى المحترف 3 – دروس الخامات 4 – دروس التحريك و المؤثرات و ما شابه

1 – دروس النمذجة بالترتيب من حيث السهولة ثم الصعوبة و الأعمال الإحترافية و ترجمة دروس النمذجة من برامج آخرى ” ليست ترجمة لغات ^_^ ” إلى البلندر

________________

الدرس الرابع .. الشـــرط من سلسلة ”تعلم بايثون “

$
0
0

مقدمة

حياة بلا قيود

يقول مالك بن نبى إن المجتمع الذي يعمل فيه كل فرد ما يحلو له ليس مجتمعاً ولكنه إما مجتمع في بداية تكونه وإما مجتمع بدأ حركة الانسحاب من التاريخ فهو بقية مجتمع

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

الشرط و المنطق

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

الجمل الشرطية

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

نستخدم للجمل الشرطية فى لغة البايثون كلمة if و تستخدم هكذا :

if x > 0:
print “x is positive”

نبدأ السطر بالكلمة المفتاحية if و تضع العملية المنطقية التى سنتطرق إليها الآن و بعد العملية تضع النقتطين ثم نبدأ السطر الجديد بعد أربع مسافات كالدوال ثم الجملة أو البيان .

العمليات المنطقية

العملية الأولى هى عملية مقارنة المساواة وهى عبارة عن علامة يساوى مكررة مرتين جرب تكتب فى المفسر التفاعلى للغة البايثون 2 ==2 و أنظر الناتج

>>> 2 == 2
True
>>> 2 == 3
False

الناتج يكون إما Flase أو True و هذه نواتج العمليات المنطقية أما أن يخبرك بأن العملية حقيقية أو مزيفة .

>>> type(True)
<type ‘bool’>

و لاحظ أن True تبدأ بحرف كبير و ليست true .

و باقى العمليات المنطقية كالآتى

x != y  أى أن x لا تساوى y

x>y   أكبر من  و عكسها   x<y     أصغر من

و أكبر من أو يساوى x >= y و أيضا أصغر من أويساوى

باقى القسمة

علمية باقى القسمة هى الحصول على باقى قسمة عددين غير قابلين للقسمة كقسمة 10 على 3 و ناتجها أنها تساوى 3 و الباقى واحد . و هى العلامة % و هى تعطيك الباقى فقط و ليس ناتج عملية القسمة جرب فى المفسر التفاعلى :

>>> 10 % 9
1
>>> 10 % 3
1
لاحظ أن الباقى واحد فى نفس الحالتين لإنه يحسب باقى القسمة فقط
>>> 10 % 4
2

خصائص الجمل الشرطية

if x > 0:
print “x is positive”

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

لو أردنا أن نرى نتيجة لو كان الشرط غير متحقق , أنظر إلى هذا المثال :

if x % 2 == 0:
print x, “is even”
else:
print x, “is odd

حاول إستخدام محرر مثل Geany

سيعطيك الشكل بهذا التنسيق

التكرار - بايثون

و فى هذا المثال يقوم حساب هل باقى القسمة للجملة ” 2 % x “ يساوى صفر أم لا ؟ فإن كان مساويا للصفر فيكون قابل للقسمة على الرقم 2 و يكون عدد زوجى ” even “ و بعد ذلك إن لم يكن متحقق فيه الشرط قم بطباعة أن الرقم فردى ” odd “ , و أستخدمنا جملة else و هذه معناها غير ذلك .

الجملة الشرطية تتكون من أفرع فالجزء الأول هو فرع و المقطع الثانى فرع و الذى يحوى else مثلا :

else: print x, “is odd”
يمكن أن نقوم بعمل دالة داخلها شرط فمثلا دالة لحساب إذا كان العدد زوجى أو فردى
def odd_even (x):
if x % 2 == 0:
print x, “is even”
else:
print x, “is odd”
و قد تتعدد الأفرع فى الجمل الشرطية ففى الجملة السابقة وضعنا شرط واحد و لكن قد نحتاج إلى أكثر من شرط : if x < y: print x, “is less than”, y elif x > y: print x, “is greater than”, y else: print x, “and”, y, “are equal” لو كانت x أصغر من y يطبع أن x أصغر من y و لو كان x أكبر من y يطبع أن x أكبر من y و غير ذلك يطبع أن x تساوى y . إستخدمنا شرطان و إن لم يتحققا نستخدم جملة eles و التى تعنى غير ذلك و جملة else لابد أن تكون هى الخاتمة للجملة الشرطية و قد تتعدد الشروط بإستخدام جملة elif و ليس للجملة الشرطية عدد معين من الشروط .

الجمل الشرطية المتداخلة

يمكن إستخدام جملة if داخل نفسها فمثلا :

if x == y:
print x, “and”, y, “are equal”
else:
if x < y:
print x, “is less than”, y
else:
print x, “is greater than”, y

هذه جملة شرطية تتكون من فرعين أساسيين و الفرع الثانى مكون من فرعين أساسيين آخرين .

يمكن للجملة الشرطية أن تكون بهذا الشكل

if 0 < x < 10:     print "x is a positive single digit." و هذه معناها هل الرقم x محصور بين الصفر و الرقم عشرة ؟ فيكون عدد آحادى . جملة return لإيقاف الجملة الشرطية داخل الدوال فقط  قبل إنتهاء الدلة نستخدم جملة return , فمثلا اللوغاريتم لا يقبل أرقام سالبة فلو أردنا عمل دالة هكذا : import math def print_logarithm(x):     if x <= 0:         print "Positive numbers only, please."         return      result = math.log(x)     print "The log of x is", result أستخدمنا جملة return داخل الجملة الشرطية و هذه معناها أنه إن لم يتحقق الشرط قم بطباعة "Positive numbers only, please." يعنى الأرقام الموجبة فقط و بعدها قم بإنهاء الدالة و لا تكمل تنفيذ باقى الدالة . حاول تنفيذ الدالة بقيمة سالبة و حاول أن تحذف جملة return من الدالة و أنظر للنتائج .  المراجع  

How to Think Like a Computer Scientist


مكتبة البايثون

$
0
0

السلام عليكم و رحمة الله و بركاته

تم إضافة كتب جديدة

هنا توضع كل كتب البايثون ..

نبدأ ..

ملحوظة : هذه الكتب هى التى أستفدت منها .. و التى لا آرى أنها مفيدة لا أضعها هنا ..

الكتاب الأول

How to Think Like a Computer Scientist: Learning with Python

هذا الكتاب من أفضل الكتب لمن لم يتعلم البرمجة من قبل ..

http://www.greenteapress.com/thinkpython/

تنزيل pdf
http://www.greenteapress.com/thinkpython/thinkpython.pdf

تنزيل html و التصفح أوفلين ..
http://www.greenteapress.com/thinkpython/thinkpython.html.zip

تصفح مباشر
http://www.greenteapress.com/thinkpython/html

#########################

الكتاب الثانى

A Byte of Python

هذا هو الكتاب الثانى فى السهولة بعد الكتاب الأول و به معلومات قيمة و مبسطة و أمثلة رائعة

http://www.byteofpython.info/

و كاتبه من الهند و له أسلوب جميل فى التبسيط ..
و منه نسخة عربية مترجمة على وادى التقنية

من ترجمة أشرف على خلف

http://itwadi.com/byteofpython_arabi

#######################
الكتاب الثالث

Python Cookbook

هذا الكتاب عبارة عن تجميعة لوصفات برمجية بلغة البايثون تم تجميعها من موقع
http://aspn.activestate.com/ASPN/Python/Cookbook/
و الموقع ملئ بالأمثلة المشروحة و لكن هذه مجموعة منتقاة منهم

و كل ما فى هذا الكتاب موجود فى الموقع المذكور ..

لتنزيل الكتاب
http://ibnyassen.googlepages.com/html.7z

#############################

الدرس الرابع

فى البرمجة الرسومية بإستخدام QT

ليس كتابا لكنه مقدمة أكثر من رائعة لإستخدام البايثون مع QT و بعد قراءة تلك الدروس ستخرج ببرامج ليست بالبسيطة ..
http://zetcode.com/tutorials/pyqt4

فى النهاية ستصمم لعبة ^_^

#####################
الدرس الخامس

نفس الكلام السابق لكن على مكتبة wx python و هى مكتبة فائقة الروعة ..
لكن الكاتب إستفاض فى هذا الدرس أكثر عن درس مكتبة QT ..
فتجده يشرح إستخدام SQLite فى هذا الدرس ..

http://zetcode.com/wxpython/

#####################

الكتاب السادس

Rapid GUI Programming with Python and Qt

كتاب موسوعة عن البرمجة بواجهة رسومية مع بايثون و QT ..

هنا

########################

الكتاب السابع

بايثون لغة كبيرة و قوية ….. و لها رابطة مع قاعدة البيانات Sqlite و هذا كتاب يشرح قواعد البيانات بإستخدام SQLite و هو لمن لم يعرف عن قواعد البيانات شيئا ..

هنا

#####################

الكتاب الثامن

Programming Python, 3rd Edition
هذا الكتاب عبارة عن مقدمة فى لغة البايثون و الباب الأول منه عبارة عن مشروع مشروع من البداية إلى النهاية ..

تنزيل

هنا

####################

الدرس التاسع

دورة رائعة بل و فى قمة الروعة و البساطة من آخ كريم

تم تجميعها فى روابط pdf , odt

http://www.linuxac.org/forum/linuxac6/thread29126.html

الان مع روابط التحميل
الكتاب بصيغة pdf
4shared.com – document sharing – download Bramijnet-Python-Course .pdf
http://www.mediafire.com/file/nlmwttnyzkt/Python-Course
الكتاب بصيغة odt
4shared.com – online file sharing and storage – download Bramijnet-Python-Course.odt

هنا

####################

الدرس العاشر

البرمجة الرسومية ببايثون مع المكتبة PyGtk

للأستاذ مؤيد صالح السعدى صاحب كتاب لينكس الشامل

تصفح من هنا

و هو فيه مقدمة سريعة عن بايثون ..

###################

الكتاب الحادى عشر

Dive Into Python 3

كتاب قيم و بسيط جدا و هو يدعم بايثون 3

###############

12   كتاب البايثون لأحمد يوسف

كتاب عربى يجمع معلومات قيمة

Index of /strikytutorials/drafts/pfpybook2

##############

13

أكبر كتاب باللغة العربية في برمجة بايثون-ByteofPython

كتاب مترجم بواسطة أشرف خلف و هو كتاب رائع و راقى جدا و الترجمة ممتازة

#############

14

بناء التطبيقات مع Python بالإعتماد على GTK و SQLite

كتاب رائع جدا عن البايثون مع pyGTK

معرض أجمل أعمال أعضاء القسم

Viewing all 10 articles
Browse latest View live