GOGENDANTESS
24-09-2006, 05:33 AM
سم الله الرحمن الرحيم
اولا مبارك عليكم شهر رمضان المبارك و الله يعوده عليكم بكل خير و محبة و سلام :)
و حبيت اقولكم لعبة Sonic Xtreme NeXT قريب و تنزل نسخة الألفا :) و انا طلعت من فريق البرمجة لأني الحين قاعد اتعلم الDirectX و الحين انا صرت مدير العلاقات العامة Community Manager و مصمم الموقع :) و كاتب قصص :)
عشان جذي انا تفرغت لكم و بحط دروس مني لكم للبدء برمجة ألعاب في الـ ++C :) و إنشاء الله بس اخلص تعلم برمجة الـ ++C بالدايركت اكس احط دروس :)
مقدمة عن الـ ++C :
لغة ال++C صممها بيارن ستروسترب
http://www.bell-labs.com/history/unix/images/91-10608-EM.jpeg
في مختبرات Bill Gates كتحسين للغة الـ C خصوصا لغة الـ C ليست كاملة ككمال ++C. اشتغل عليها المهندس بيارن سنة 1979. بس ليش قرر المهندس بيارن تطوير لغة الـ ++C على حساب الـ C ؟؟؟
لأن الـ C لغة سريع جدا جدا جدا و قوية في نفس الوقت. فقد ظاف المهندس بيارن الكثير من المميزات إلى الـ C كالـ Functions و الـ Refrences و الـ Operator overfloating. و أول إطلاق رسمي تجاري للـ ++C كان في أكتوبر سنة 1985. الإسم الأول للغة الـ ++C كان The New C و تم تغييره إلى C with classes ثم إلى ++C .
بس ليش شركات الألعاب العملاقة مثل EA و Capcom و Blizzard تختار لغة صعبة بحتة لتصميم لعبة ؟
تخيل انك قاعد تصمم لعبة بلغة الآلة :
11010101010101010000111100
اكيد راح تكون اقوى لعبة بالعالم كله من الناحية البرمجية ، و راح تكون أسرع لعبة و أقوى لعبة أقوى من Final Fintasy و Resident Evil و Age of Empires. بس منو الفاظي اللي يبي يبرمج بلغة الآلة ؟؟:D
لكن تخيل تبي تبرمج اللعبة بلغة انزل من رتبة لغة الآلة برتبة او رتبتين!!! راح تكون بنفس القوة و السرعة و لكن اقل بقليل جدا :) و اهي الـ ++C :)
هذا سبب اختيار الشركات العملاقة للغة الـ ++C :
1-لغة سريعة : فالبرامج المكتوبة جيدا تكون سريعة بسرعة مذهلة !! احد من اهداف الـ ++C هو التشغيل على اكمل وجه. و لغة الـ ++C تتفاهم مع الهاردوير من غير عميل. يعني على طول من إيدك لي الكمبيوتر :)
2-مرونة اللغة : الـ ++C لغة ثنائية النماذج ، يعني يمكن تسوي برنامج بأكثر من طريقة و فيها تقدر تبرمج باستخدام الكائنات
3-لغة مدعومة جيدا: حيث هذه اللغة مدعومة جيدا من كل النواحي : الفيزيا ، 2دي ، 3دي و محركات الأصوات.
ماذا بعد ؟؟؟
لتستفيد من هذا الموضوع تحتاج لشيء واحد مجاني فقط !!!
Compiler و آخر و اقوى Compiler متوفر اهو DEV-C++ bloodshed و اهو مجاني بالكامل لا تسجيل و لا هم يحزنون و هذا رابط التنزيل مباشرة :) :
http://dw.com.com/redir?pid=10498828&merid=59072&mfgid=59072<ype=dl_dlnow&lop=link&edId=3&siteId=4&oId=3040-2069_4-10498828&ontId=2069_4&destUrl=http://www.download.com%2F3001-2069_4-10498828.html
يالله نبدا بالدرس الاول بإذن الله :)
الدرس الأول : العمل مع المتغيرات و الثوابت :
1-كتابة أول برنامج لك في الـ ++C:
اكتب هذا الكود و سو له compile :
//Game Over
//Very first C++ program
#include <iostream>
int main()
{
std::cout << "Game Over!" << std::endl;
return 0;
}
نلاحظ اول سطرين السلاش ، و اهي علامة التعليق. باختصار الكومبايرلر ما يعطي هالأسطر اي أهمية و يتجاهلها. هذي الأسطر تفيدك إذا تحب تكتب تعليق قبل loop او شي عشان يذكرك :)
السطر الثالث انا ادخلت مكتبة iostream و اهي تنطق جذي :
آي أو ستريم
هذي المكتبة اهي تعطيك بالتحكم اب كائن cout و cin (يأتي شرح cin بالمستقبل بإذن الله)
السطر الرابع و اللي يحتوي على int main اهو هيكل البرنامج :) حيث int اختصار integer و اهو عدد صحيح ، و هذا يعني ان البرنامج يعمل و يرد بقيمة صحيحة ، و القوس } و { اهم بدء و إنهاء الوظيفة int main
السطر الخامس و اهو يعرض Game Over ، حيث cout تنطق ك: c out ، و مثل ما قريتها "out" و هذا يعني يطلع شي للخارج و اهو سطر Game Over و هنا نستخدم المشغل الخارجي :
>> و هذا يعني المعلومات خلف هذا السهم تابعة للكائن cout
السطر الأخير و اهو return 0; اهو يعني إنهاء البرنامج بدون اي مشكلة
2- العمل مع name space std
تخيل انت كل ساعة تبي تكتب الكائن cout راح تحتاج إلى كتابة std، تتوقع ما لها حل ؟؟ لها حل :) و اهي namespace std و اهو يجنبك بكتابة std كل مره :)
//Game Over 2.0
//Using namespace std;
#include<iostream>
using namespace std;
int main()
{
cout << "Game over" << endl;
return 0;
}
3- مشغلات العمليات الحسابية الأساسية :
علامة الضرب بالسي بلس بلس اهي : *
علامة القسمة : /
علامة الجمع : +
علامة الطرح : -
و في علامة زيادة للعمليات الحسابية و اهي % و اهي علامة للقسمة لكن تقسم على عدد على عدد ما يقبل القسمة عليه و يعطيك قيمة صحيحة بدون اي كسور او ارقام عشرية
يعني مثلا لو تفتح الآلة الحاسبة و تقسم 7 على 3 راح تعطيك
2.3333333333333333333333333333333
فهالعلامة تفيدك في حالة انك تبي حاصل العملية عدد صحيح :)
هذا برنامج توضيحي :
#include<iostream>
using namespace std;
int main()
{
cout << "7 + 3= " << 7 + 3 << endl;
cout << "7 - 3= " << 7 - 3 << endl;
cout << "7 * 3= " << 7 * 3 << endl;
cout << "7 / 3= " << 7 / 3 << endl;
cout << "7 % 3= " << 7 % 3 << endl;
return 0;
}
4- استقبال البيانات من المستخدم باستخدام الكائن cin
عرفنا كيفية اخراج معلومات على الشاشة ، الحين لازم نعرف اشلون نستقبل بيانات من المستخدم :)
أنواع المتغيرات
:
1- int : و هو عادة يكون عدد
2- char : و اهو حروف
3- bool : و اهو لعملية true or false
إعلان المتغيرات يكون كالتالي
int score;
char playAgain;
bool shieldsUp;
و بعدين تقدر تتلاعب بقيمة المتغير مثل ما تحب يعني مثلا تبي تعين قيمة البدء للمتغير fine من 7 يكون كالتالي :
int fine = 7;
و تعيين المتغير يكون قبل البدء باستخدامه ، يعني مو تسوي عملية حسابية تشمل المتغير مثلا number و بعدها العملية تعين المتغير number.... لأ المتغير يكون اولا :)
و لا تتعب نفسك تعين المتغيرات اول البرنامج ، تقدر تعين المتغير قبل ما تستخدمه :)
هذا برنامج يعرض متغيرات بدون التلاعب فيها :) :
//Declaring variables
#include <iostream>
using namespace std;
int main()
{
int score = 0;
int health = 6565.3;
int ammo = 5;
cout << "\nYour score is " << score << endl;
cout << "\nYour health is " << health << endl;
cout << "\nYour ammo is " << ammo << endl;
return 0;
}
الحين ايي دور إدخال البيانات ، طبعا قبل لا المستخدم يدخل بيانات لازم يكون في متغير تنحفظ داخله البيانات :)
//Getting data from the user
#include <iostream>
using namespace std;
int main()
{
int money;
cout << "\nHow much money you have ?" << endl;
cin >> money;
cout << "\nYou have << money << " in your account " << endl;
}
لاحظت اولا الـ n\ هذا يقول للبرنامج اكتب هالشي بسطر يديد :)
ثانيا : عينت المتغير money و قيمته الإفتراضية صفر ، فلما يدخل المستخدم قيمة راح تكون المعادلة :
money + 0
و شوف اسهم الـ cin تتجه إلى المتغير هذا يعني البرنامج ياخذ قيمة الإدخال و يعطيها للمتغير :)
تمرين اليوم :
سو لي برنامج ياخذ رقم من المستخدم و يجمعه مع 100 و يطلع النتيجة
مساعدة :
1- استخدم متغير واحد بإسم number
2-استخدم الكائن cout و cin
إذا خلصت البرنامج حط الكود اهني وانا اختبره :)
ملاحظة : إذا كنت تعاني من مشكلة سرعة إغلاق التطبيق اظف المكتبة
#include<conio.h>
اظف هالكود قبل return 0;
getch();
فيصبح شكل البرنامج العام :
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
cout << "Monatada.com" << endl;
getch();
return 0;
}
اولا مبارك عليكم شهر رمضان المبارك و الله يعوده عليكم بكل خير و محبة و سلام :)
و حبيت اقولكم لعبة Sonic Xtreme NeXT قريب و تنزل نسخة الألفا :) و انا طلعت من فريق البرمجة لأني الحين قاعد اتعلم الDirectX و الحين انا صرت مدير العلاقات العامة Community Manager و مصمم الموقع :) و كاتب قصص :)
عشان جذي انا تفرغت لكم و بحط دروس مني لكم للبدء برمجة ألعاب في الـ ++C :) و إنشاء الله بس اخلص تعلم برمجة الـ ++C بالدايركت اكس احط دروس :)
مقدمة عن الـ ++C :
لغة ال++C صممها بيارن ستروسترب
http://www.bell-labs.com/history/unix/images/91-10608-EM.jpeg
في مختبرات Bill Gates كتحسين للغة الـ C خصوصا لغة الـ C ليست كاملة ككمال ++C. اشتغل عليها المهندس بيارن سنة 1979. بس ليش قرر المهندس بيارن تطوير لغة الـ ++C على حساب الـ C ؟؟؟
لأن الـ C لغة سريع جدا جدا جدا و قوية في نفس الوقت. فقد ظاف المهندس بيارن الكثير من المميزات إلى الـ C كالـ Functions و الـ Refrences و الـ Operator overfloating. و أول إطلاق رسمي تجاري للـ ++C كان في أكتوبر سنة 1985. الإسم الأول للغة الـ ++C كان The New C و تم تغييره إلى C with classes ثم إلى ++C .
بس ليش شركات الألعاب العملاقة مثل EA و Capcom و Blizzard تختار لغة صعبة بحتة لتصميم لعبة ؟
تخيل انك قاعد تصمم لعبة بلغة الآلة :
11010101010101010000111100
اكيد راح تكون اقوى لعبة بالعالم كله من الناحية البرمجية ، و راح تكون أسرع لعبة و أقوى لعبة أقوى من Final Fintasy و Resident Evil و Age of Empires. بس منو الفاظي اللي يبي يبرمج بلغة الآلة ؟؟:D
لكن تخيل تبي تبرمج اللعبة بلغة انزل من رتبة لغة الآلة برتبة او رتبتين!!! راح تكون بنفس القوة و السرعة و لكن اقل بقليل جدا :) و اهي الـ ++C :)
هذا سبب اختيار الشركات العملاقة للغة الـ ++C :
1-لغة سريعة : فالبرامج المكتوبة جيدا تكون سريعة بسرعة مذهلة !! احد من اهداف الـ ++C هو التشغيل على اكمل وجه. و لغة الـ ++C تتفاهم مع الهاردوير من غير عميل. يعني على طول من إيدك لي الكمبيوتر :)
2-مرونة اللغة : الـ ++C لغة ثنائية النماذج ، يعني يمكن تسوي برنامج بأكثر من طريقة و فيها تقدر تبرمج باستخدام الكائنات
3-لغة مدعومة جيدا: حيث هذه اللغة مدعومة جيدا من كل النواحي : الفيزيا ، 2دي ، 3دي و محركات الأصوات.
ماذا بعد ؟؟؟
لتستفيد من هذا الموضوع تحتاج لشيء واحد مجاني فقط !!!
Compiler و آخر و اقوى Compiler متوفر اهو DEV-C++ bloodshed و اهو مجاني بالكامل لا تسجيل و لا هم يحزنون و هذا رابط التنزيل مباشرة :) :
http://dw.com.com/redir?pid=10498828&merid=59072&mfgid=59072<ype=dl_dlnow&lop=link&edId=3&siteId=4&oId=3040-2069_4-10498828&ontId=2069_4&destUrl=http://www.download.com%2F3001-2069_4-10498828.html
يالله نبدا بالدرس الاول بإذن الله :)
الدرس الأول : العمل مع المتغيرات و الثوابت :
1-كتابة أول برنامج لك في الـ ++C:
اكتب هذا الكود و سو له compile :
//Game Over
//Very first C++ program
#include <iostream>
int main()
{
std::cout << "Game Over!" << std::endl;
return 0;
}
نلاحظ اول سطرين السلاش ، و اهي علامة التعليق. باختصار الكومبايرلر ما يعطي هالأسطر اي أهمية و يتجاهلها. هذي الأسطر تفيدك إذا تحب تكتب تعليق قبل loop او شي عشان يذكرك :)
السطر الثالث انا ادخلت مكتبة iostream و اهي تنطق جذي :
آي أو ستريم
هذي المكتبة اهي تعطيك بالتحكم اب كائن cout و cin (يأتي شرح cin بالمستقبل بإذن الله)
السطر الرابع و اللي يحتوي على int main اهو هيكل البرنامج :) حيث int اختصار integer و اهو عدد صحيح ، و هذا يعني ان البرنامج يعمل و يرد بقيمة صحيحة ، و القوس } و { اهم بدء و إنهاء الوظيفة int main
السطر الخامس و اهو يعرض Game Over ، حيث cout تنطق ك: c out ، و مثل ما قريتها "out" و هذا يعني يطلع شي للخارج و اهو سطر Game Over و هنا نستخدم المشغل الخارجي :
>> و هذا يعني المعلومات خلف هذا السهم تابعة للكائن cout
السطر الأخير و اهو return 0; اهو يعني إنهاء البرنامج بدون اي مشكلة
2- العمل مع name space std
تخيل انت كل ساعة تبي تكتب الكائن cout راح تحتاج إلى كتابة std، تتوقع ما لها حل ؟؟ لها حل :) و اهي namespace std و اهو يجنبك بكتابة std كل مره :)
//Game Over 2.0
//Using namespace std;
#include<iostream>
using namespace std;
int main()
{
cout << "Game over" << endl;
return 0;
}
3- مشغلات العمليات الحسابية الأساسية :
علامة الضرب بالسي بلس بلس اهي : *
علامة القسمة : /
علامة الجمع : +
علامة الطرح : -
و في علامة زيادة للعمليات الحسابية و اهي % و اهي علامة للقسمة لكن تقسم على عدد على عدد ما يقبل القسمة عليه و يعطيك قيمة صحيحة بدون اي كسور او ارقام عشرية
يعني مثلا لو تفتح الآلة الحاسبة و تقسم 7 على 3 راح تعطيك
2.3333333333333333333333333333333
فهالعلامة تفيدك في حالة انك تبي حاصل العملية عدد صحيح :)
هذا برنامج توضيحي :
#include<iostream>
using namespace std;
int main()
{
cout << "7 + 3= " << 7 + 3 << endl;
cout << "7 - 3= " << 7 - 3 << endl;
cout << "7 * 3= " << 7 * 3 << endl;
cout << "7 / 3= " << 7 / 3 << endl;
cout << "7 % 3= " << 7 % 3 << endl;
return 0;
}
4- استقبال البيانات من المستخدم باستخدام الكائن cin
عرفنا كيفية اخراج معلومات على الشاشة ، الحين لازم نعرف اشلون نستقبل بيانات من المستخدم :)
أنواع المتغيرات
:
1- int : و هو عادة يكون عدد
2- char : و اهو حروف
3- bool : و اهو لعملية true or false
إعلان المتغيرات يكون كالتالي
int score;
char playAgain;
bool shieldsUp;
و بعدين تقدر تتلاعب بقيمة المتغير مثل ما تحب يعني مثلا تبي تعين قيمة البدء للمتغير fine من 7 يكون كالتالي :
int fine = 7;
و تعيين المتغير يكون قبل البدء باستخدامه ، يعني مو تسوي عملية حسابية تشمل المتغير مثلا number و بعدها العملية تعين المتغير number.... لأ المتغير يكون اولا :)
و لا تتعب نفسك تعين المتغيرات اول البرنامج ، تقدر تعين المتغير قبل ما تستخدمه :)
هذا برنامج يعرض متغيرات بدون التلاعب فيها :) :
//Declaring variables
#include <iostream>
using namespace std;
int main()
{
int score = 0;
int health = 6565.3;
int ammo = 5;
cout << "\nYour score is " << score << endl;
cout << "\nYour health is " << health << endl;
cout << "\nYour ammo is " << ammo << endl;
return 0;
}
الحين ايي دور إدخال البيانات ، طبعا قبل لا المستخدم يدخل بيانات لازم يكون في متغير تنحفظ داخله البيانات :)
//Getting data from the user
#include <iostream>
using namespace std;
int main()
{
int money;
cout << "\nHow much money you have ?" << endl;
cin >> money;
cout << "\nYou have << money << " in your account " << endl;
}
لاحظت اولا الـ n\ هذا يقول للبرنامج اكتب هالشي بسطر يديد :)
ثانيا : عينت المتغير money و قيمته الإفتراضية صفر ، فلما يدخل المستخدم قيمة راح تكون المعادلة :
money + 0
و شوف اسهم الـ cin تتجه إلى المتغير هذا يعني البرنامج ياخذ قيمة الإدخال و يعطيها للمتغير :)
تمرين اليوم :
سو لي برنامج ياخذ رقم من المستخدم و يجمعه مع 100 و يطلع النتيجة
مساعدة :
1- استخدم متغير واحد بإسم number
2-استخدم الكائن cout و cin
إذا خلصت البرنامج حط الكود اهني وانا اختبره :)
ملاحظة : إذا كنت تعاني من مشكلة سرعة إغلاق التطبيق اظف المكتبة
#include<conio.h>
اظف هالكود قبل return 0;
getch();
فيصبح شكل البرنامج العام :
#include<iostream>
#include<conio.h>
using namespace std;
int main()
{
cout << "Monatada.com" << endl;
getch();
return 0;
}