khatibe_30

تعرف على الذكاء الصناعي, إجعل الحاسوب يفكر !

18 ردود في هذا الموضوع

post-219439-009628800 1346083442_thumb.g

إنَّ الحمد لله نحمدهُ ونستعينهُ ونستغفره ونستهديهِ ونعوذ باللهِ من شرور أنفسنا وسيئات أعمالنا،

من يهدهِ اللهُ فلا مضلَّ له، ومن يضلل فلا هادي له، وأشهد أن لا إله إلا الله وحده لا شريك له،

وأشهد أنَّ محمداً عبده ورسوله .

تحية طيبة وبعد ..

post-219439-036206900 1346083448_thumb.g

أعزائي الأعضاء, المشرفين و الزوار

لا يمكن نشر أي لعبة ذات لاعبین و توزيعھا دون إضافة خاصیة اللعب ضد الكومبیوتر,

قد يبدو الموضوع معقدا للوھلة الأولى و تطبیقه صعب جدا إذ أنه يعتبر ذكاءا صناعیا,

لكن على العكس,

الأمر و تطبیقه لیس أصعب من برمجة اللعبة في حد ذاتھا طبعا بعد التعرف على

الألغوريتم المناسب و تعلم برمجته,

و لھذا أقدم لكم ھذا الكتیب آملا أن يوضح لكم كیف تتم

العملیة.

post-219439-000873000 1346083437_thumb.p

لتحميل الدرس

لتحميل المشروع الذي تم العمل عليه و هو لعبة Tic Tac Toe

مع امكانية اللعب ضد الحاسوب

كود سورس المشروع من هنا

post-219439-083081100 1346083444_thumb.g

تم تعديل بواسطه أحمد الشنقيطي
تحديث المرفقات.
4

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

مرحبا أخي ياسين :)

+1

موضوع جميل جدا, بارك الله فيك.

أظن أنك سبق و أن طرحتَ موضوعا عن برمجة الــ Compiler لكن من عضوية مختلفة, صح ؟

لي عودة :happy:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

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

مرحبا أخي ياسين :)

+1

موضوع جميل جدا, بارك الله فيك.

أظن أنك سبق و أن طرحتَ موضوعا عن برمجة الــ Compiler لكن من عضوية مختلفة, صح ؟

لي عودة :happy:

مرحبا أخي أحمد

أجل سبق ذلك, لكن نسيت العضوية السابقة و كلمة مرورها :wacko:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مشكور أخي + هل أنت هو prince 3

عفوا عزيزي, أجل, prince 3

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

مبدع أخي ياسين لقد اجتمعتم هنا و هناك laugh.gif هههههههههه + انا هو حمزة الصغير ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بصراحة, قرأتُ الدرس و قد أعجبني جدا .. لذا قمتُ بتقييم الموضوع بـ 5 نجوم :happy:

خوارزمية القيم العظمى والصغرى (Minimax Algorithm) معروفة جدا و كثيرا ما يتم تدريسها في مادة الــ Game Theory حيث يتم تطبيق الخوارزمية على Zero–sum game.

الــ Minimax تتردد كثيرا ما بين القيم العظمى والصغرى حتى تصل لقمة الشجرة لكن بتطبيق تقنية Alpha Beta Pruning يمكن أن تعمل تلك الخوارزمية بضعف سرعتها وتستهلك ذاكرة أقل.

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

أجل سبق ذلك, لكن نسيت العضوية السابقة و كلمة مرورها

أتمنى أن لا تنسى كلمة مرور هذه العضوية أيضا :D

بالمناسبة, عند تشغيل الملف التنفيذي تظهر لي الرسالة التالية :

post-219439-062144100 1346082356_thumb.p

أعتقد أ المشكلة تتعلق بــ Microsoft Visual C++ Redistributable Package (x86).

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

بصراحة, قرأتُ الدرس و قد أعجبني جدا .. لذا قمتُ بتقييم الموضوع بـ 5 نجوم :happy:

خوارزمية القيم العظمى والصغرى (Minimax Algorithm) معروفة جدا و كثيرا ما يتم تدريسها في مادة الــ Game Theory حيث يتم تطبيق الخوارزمية على Zero–sum game.

الــ Minimax تتردد كثيرا ما بين القيم العظمى والصغرى حتى تصل لقمة الشجرة لكن بتطبيق تقنية Alpha Beta Pruning يمكن أن تعمل تلك الخوارزمية بضعف سرعتها وتستهلك ذاكرة أقل.

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

أتمنى أن لا تنسى كلمة مرور هذه العضوية أيضا :D

بالمناسبة, عند تشغيل الملف التنفيذي تظهر لي الرسالة التالية :

post-219439-062144100 1346082356_thumb.p

أعتقد أ المشكلة تتعلق بــ Microsoft Visual C++ Redistributable Package (x86).

أجل,أظن ذلك

أعد تحميل التطبيق مرة ثانية,تم تحديثه, Release build

ثبت vcredist_x86.exe و سيشتغل إن شاء الله

لم أتمكن من التعديل على المرفقات, أضفت رابط جديد للتطبيق المحدث

http://www.mediafire.com/?b12axm1bbd88v4m

+

لا خلاص, العضوية هاذي لن أنساها ان شاء الله :blush:

تم تعديل بواسطه khatibe_30
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

تم دمج العضوية القديمة مع الجديدة بعد التحقق من ملكية الأخ khatibe_30 لها

ولو نسيتها مرة أخرى راسلنا فنذكرك بها :lol: لأن لا أحد قد ينسى مثل هذا العطاء المميز :wink:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

تم التعديل.

سأقوم بنقل الموضوع إلى قسم المواضيع و الدروس القيمة بعد أيام (ريثما يراه زوار القسم الرئيسي).

أعد تحميل التطبيق مرة ثانية,تم تحديثه, Release build

ثبت vcredist_x86.exe و سيشتغل إن شاء الله

البرنامج اشتغل معي بدون تثبيت الــ vcredist_x86 و هذه صورة من اللعبة :

post-219439-031059300 1346094546_thumb.p

بس أنا عايز أهزم الكمبيوتر ! :D

لازم تحط إلنا خيار باسم "اضغط هنا لإضعاف قوة الكمبيوتر" :lol:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لقد وجدت حلا لهذه اللعبة لكي تهزم الكومبيوتر دائما ، أظن أن الكومبيوتر يلعب بنفس الطريقة في كل مرة mellow.gif

ryapD.png

لنرى ماذا سيقول الأخ ياسين laugh.giflaugh.giflaugh.gif

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

عزيزي Xacker

شكرا لك و الله شغلتك معي, ما راح أنساها مرة اخرى ان شاء الله :P

أخي أحمد, عايز تهزم الكومبيوتر؟

افتح السورس و غير مثلا في مكان INFINITY =1000 خليها INFINITY=-1000 و راح تفوز عليه, العكس راح يصير يفكر في انه انت اللي لازم تفوز مش هو, و يمكن حتى ما يسمحلك تحقق تعادل ههههه

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

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لقد وجدت حلا لهذه اللعبة لكي تهزم الكومبيوتر دائما ، أظن أن الكومبيوتر يلعب بنفس الطريقة في كل مرة mellow.gif

لنرى ماذا سيقول الأخ ياسين laugh.giflaugh.giflaugh.gif

عثورك على طريقة للفوز يعني أن هناك خطأ في تطبيق الألغوريتم وقعت فيه أنا

المفروض أن لا تتمكن من الفوز أبدا, أقى ما يمكن أن تحصل عليه هو تعادل

سأدقق في الأمر و أرى ما سبب الخطأ

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

أخي أحمد, عايز تهزم الكومبيوتر؟

افتح السورس و غير مثلا في مكان INFINITY =1000 خليها INFINITY=-1000 و راح تفوز عليه

أنا كنت أقصد أن يكون بإمكان المستخدم تحديد قوة لعب الكمبيوتر عن طريق إدخالها بالنسبة المئوية مثلا, لكن ما دام الهدف العام للكتاب ليس برمجة الــ XO بالتحديد فلا بأس :)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لقد سبب تطفلي مشكلة عويصة في الألغوريتم ههههههههههههه laugh.gif

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

لقد وجدت حلا لهذه اللعبة لكي تهزم الكومبيوتر دائما ، أظن أن الكومبيوتر يلعب بنفس الطريقة في كل مرة mellow.gif

لنرى ماذا سيقول الأخ ياسين laugh.giflaugh.giflaugh.gif

حسنا, بعد التدقيق وجدت 3 أخطاء في في برمجة كل من minimax2, minimax_alphabeta و negamax_alphabeta

بحيث أن التطبيق الجاهز الذي جربته أنت استعملت فيه negamax_alphabeta

على العمم كل المفاهيم في الدرس صحيحة, فقط هذه الأخطاء في التطبيق

أخطاء ساذجة من طرفي لا أكثر, سيتم إعادة رفع الملفات غدا إن شاء الله

شكرا على التدقيق, دقق أكثر يمكن يوجد المزيد من الأخطاء

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

السلام عليكم

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

أرجو أن تعدلها

رابط الدرس المعدل

http://www.mediafire.com/view/?6tytdlxjwgj5wf7

رابط الملف التنفيذي

http://www.mediafire.com/?9y1my3j1jk41bcf

رابط كود سورس المشروع

http://www.mediafire.com/?7sureh8ebuhu4i4

تحياتي لكم و للأخ حمزة, و اذا اكتشفت اي اخطاء راسلني :happy:

تم تعديل بواسطه khatibe_30
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

تم التعديل.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .