الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لعبة بواسط Alpha-beta Pruning

بدأه CS_me في 14 مايو 2008 · 5 رد · 1,587 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

طبعاً الموضوع من عنوانه

أبغي أسوي لعبة بواسطة السي بلس بلس

اللعبة هي connect four

بس لازم أستخدم

الـ Queue

و

Alpha-beta pruning algorithm

في عملية البحث

طبعاً أنا كل شي من هالأشياء فاهمه

بس كيف أبدأ؟؟

محتاج أحد يرشدني وبسوي كل شي بنفسي

بس من وين أبدأ؟؟ وكيف أجمع هالأشياء مع بعض في كود؟؟

:wacko:

بليز انتظر أحد يتكرم علي

وله الشكر والدعاء

#2

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

للتو اعرف اللعبة .. وبحثت عنها ولعبتها وهي ممتعة :) ..

لا اعرف شيء عن الخوارزمية التي كتبت عنها .. ولم احلل اللعبة الى الان ..

لكن يبدو لي ان الحل يعتمد على مصفوفة n*n .. اذا تساوت اربعة عناصر متتالية عموديا او افقيا او قطريا رح تفوز .. وطبعا اكيد انك تعرف هذا الشيء ..

فالسؤال .. أين المشكلة :) ,, ستحتاج لمكتبة جرافكس لتمثيل اللعبة .. اذا كنت مبتدئ في برمجة الجرافكس .. فانصحك بمكتبة SDL فهي عملية أكثر للالعاب ثنائية الابعاد .

اللعبة ستحتاج منك لعدة ايام .. لا اعرف هل اللعبة مشروع دراسي ..

استطيع المحاولة وتقديم المساعدة .. بعد تاريخ 17 - 6 هجري .. آخر أيام الاختبارات :) ..فأنا احببت اللعبة.. اذا كنت ستنتظر الى ذلك الوقت :) .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

مرحباً أخوي

طبعاً تطبيق هاللعبة يندرج بالنسبة لي تحت الذكاء الصناعي

والخوازمية هذي من طرق البحث الللي تعتبر جيدة جدا ً في هاللعبة

والمشكلة يا عزيزي تكمن في أني أول مرة أبرمج شي بهالطريقة

وأني أساساً مو عارف من وين أبتدي

يعني في تفاصيل معينه تندرج تحت هالخوارزمية مثل الهيرستك

أنا ملم بهالخوارزمية لكن ما استخدمتها بكود معين

يعني أنا أكثر شي محتاج أعرف من وين أبدا

#4

أنصحك بالمحرك irrlicht

حيث أنه أسهل محرك رأيته حتى الأن

كما توجد له دروس مشروحه عن كل أساسياته في المنتدى

/index.php?showtopic=136685

بصراحة أنا تعلمت المحرك من هذا الموضوع للأخ dreamnet

#5

بصراحة تحتاج إلى تفكير طويل

في موضوع الدالة المخمنة heuristic

ليست سهلة مطلقاً

سأفكر فيها بإذن الله وسأعرض النتائج

إن توصلت إلى شيء

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

اتمنى ان لا تكون اللعبة مطلوبة عليك كمشروع او واجب :)

لا تحتاج الى استخدام queue او حتى tree ، فخوارزمية alpha-beta يمكن كتابتها باستخدام recursion .

int AlphaBeta( Node boardPtr, TYPE moveType, int alpha, int beta )
{

	if ( isTerminate( boardPtr ) )
		return Eval( boardPtr, moveType );

	if ( moveType == MAX )
		{

		int childNum;

		for ( childNum = 0; childNum < getChildNum( boardPtr ); childNum++ )
			{
			int value = AlphaBeta( makeChild( boardPtr, childNum, MAX ), MIN, alpha, beta );
			if ( value > alpha )
				alpha = value;
			if ( alpha > beta )
				return beta;
			}

		bestMove = childNum;

		return alpha; 
		}

	if ( moveType == MIN )
		{

		int childNum;

		for ( childNum = 0; childNum < getChildNum( boardPtr ); childNum++ )
			{
			int value = AlphaBeta( makeChild( boardPtr, childNum, MIN ), MAX, alpha, beta );
			if ( value < beta )
				beta = value;
			if ( beta < alpha )
				return alpha;
			}

		bestMove = childNum;

		return beta; 
		}
}

لا اريد ان اضع الcode كاملاً ، الان لم يبقى عليك سوى كتابة دالة Evaluation وهي المهمه ، والباقي مجرد اساسيات في البرمجة باستخدام c++

ملاحظة: المتغير bestMove يعتبر Global وليس Local

مواضيع مشابهة