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

كيف ابحث داخل ال Array ؟

بدأه مجلـد جديـد في 26 أبريل 2008 · 1 رد · 806 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

المطلوب برمجة لعبة connect four

http://en.wikipedia.org/wiki/Connect_Four

قمت بتمثيل لوح اللعبة board بمصفوفة ذات بعدين

array[6][7] which takes int values -1, 0 or 1

الارقام للتفريق بين كرات اللاعب1 واللاعب2 وبين الاماكن الفارغة

بعد كل لعبة لابد من فحص المصفوفة ومعرفة ما اذا كان هناك اربعة كرات (1 او 0 او -1 ) متصلة او لا ، عندما يكون هناك اربع كرات متصلة اقوم بارجاع true

الدالة التي تقوم بهذا هي

findFourConnected وتاخذ المصفوفة كمدخل وترجع boolean value

خوارزميه البحث عقدتني جداً ، هل اقوم بكتابة for-loop داخل for-loop ؟ او اكتب if-statements لكل خلية ، هذا يعني تقريباً اكثر من 42 if-statements !!

انا محتار جداً لا ما افعل

لو قمت باستخدام for-loop inside for-loop والمرور على كل خلية ، بعدها ما افعل عندما اجد مثلا -1 ؟ او 0 ؟ او 1 ؟؟

مثلا هنا حاولت اخذ كل اربع خلايا مع بعض والعامود الاخير يكون له حاله خاصة ، لكن :S

bool findFourConnected( Node board, TURN turn )
{
	if ( turn == PLAYER1 )
		{
		for ( int i=0; i < ROW; i++ )
			for ( int j=0; j < COL; j++ )
				if ( j != 6 )
					{
					if ( board.array[j] == -1 
						&& board.array[j+1] != -1 
						&& board.array[i+1][j+1] != -1
						&& board.array[i+1][j] != -1 )
							j++;
					else
						if ( board.array[j] == -1 && board.array[j+1] == -1 )
							for ( )
					}
				else
					{

					}

		}
	else if ( turn == PLAYER2 )
			{


			}
	else 
		cout <<"Error!\n";
}
#2

اخي العزيز، تحتاج حل recursive لاستخدام خوارزميات مثل البحث المعروفة و هياكل بيانات قد تفيد في حل مشكلتك و كمثال اقرا المقالات المرفقة و ستجد حل إن شاء الله :) .

http://www.gamedev.net/reference/articles/article1374.asp

http://www.gamedev.net/reference/articles/article1433.asp

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

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