برگزیده های پرشین تولز

C پروژه شطرنج براي

MSN_Golden

کاربر تازه وارد
تاریخ عضویت
7 سپتامبر 2004
نوشته‌ها
257
لایک‌ها
3
با سلام خدمت شما دوستان
كسي پروژه آماده شطرنج تحت C داره ؟ ( البته سورسش )
ضمنا ميخواستم بدونم كه چطوري مثلا ميتونم يك آرايه دو بعدي از نوع رشته رو توليد كنم
ممنون از شما
 

mostafa_gm

Registered User
تاریخ عضویت
4 آپریل 2005
نوشته‌ها
1,863
لایک‌ها
438
محل سکونت
My House
طراحی بازی شطرنج که فکر نمیکنم کار هر کسی باشه.
آرایه رشته رو هم میشه اینطوری تعریف کرد:
PHP:
char str[10];
 

Arash75

Registered User
تاریخ عضویت
20 دسامبر 2002
نوشته‌ها
123
لایک‌ها
0
تو Sample Code های Borland C++ 3.1 هم یک Chess هست اگه بخوای میشه گشت دنبالش . ولی اگه الگوریتم کسی سراغ داره فکر کنم مفید تر باشه تا کد. خواندن کد کار راحتی نیست معمولا!

راجع به آرایه هم واسه حجم کوچیک همین که دوستان گفتن واسه حافظه زیاد Pointer

// get mem for 100 * 100 char array
char ** array;
int status ;
if( (array= new char * [100]) != NULL ){
for( i = 0; i < 100 ; i++ ){
array = NULL;
if( !status ){
if( (array = new char [100]) == NULL )
status = 1;
else
memset( array, 0x0, sizeof(char) * 100 );
}
}
}
else{
status = 1;
}

status واسه بررسی خطا است فکر کنم کلیت داستان و نشون بده این نمونه کد گر چه تو این ادیتور خیلی بد قیافه ست!!
 

programmer

کاربر تازه وارد
تاریخ عضویت
1 نوامبر 2005
نوشته‌ها
85
لایک‌ها
0
سلام
از
کد:
char *str[100];
میشه برای ایجاد آرایه ای از رشته ها در ++C استفاده کرد.
اگه طول رشته ها قابل پیش بینی باشه میشه از
کد:
char str[100][Max_Length];
استفاده کرد که Max_Length ماکسیمم طول رشته ها همراه با NULL است .
این هم کدی که جناب Arash نوشته بودند:
کد:
// get mem for 100 * 100 char array
char ** array;
int status ;
if( (array= new char * [100]) != NULL ){
for( i = 0; i < 100 ; i++ ){
array[i] = NULL;
if( !status ){
if( (array[i] = new char [100]) == NULL )
status = 1;
else
memset( array[i], 0x0, sizeof(char) * 100 );
}
}
}
else{
status = 1;
}
فقط اگه یه توضیح در مورد این کد می دادید خیلی بهتر بود، چون افراد تازه کاری مثل من باید وقت زیادی برای فهمیدن جزئیات این کد بگذارند.
کد:
char ** array;
در واقع اشاره گری به یک اشاره گر است(اشاره گری به یک رشته).
بعد یک آرایه رو با استفاده از تخصیص حافظه پویا به array نسبت دادید و چک کردین خطایی رخ داده یا نه.
تابع memset هم که با شروع از ابتدای پارامتر اولش که یک اشاره گرهست، به اندازهای که پارامتر سوم که از نوع Size_t پارامتر دوم رو در اون اشاره گر قرار میده.
مثلآ
کد:
memset(str,'A' ,sizeof(char)*10)
اگه اندازه char یک بایت باشه ،10 بایت اول از str رو با کاراکتر A پر می کنه.
در مورد محتویات آدرس OxO (خانه صفر حافظه) میشه توضیح بدین؟
فکر کنم بهتره خودتون توضیح کامل رو بدین.
 

programmer

کاربر تازه وارد
تاریخ عضویت
1 نوامبر 2005
نوشته‌ها
85
لایک‌ها
0
در واقع باید کل وقتت رو بزاری واسه این کار چون واقعآ جدیه و خیلی هم مشکل !
میشه بگین این پروژه رو برای چه درسی دارید میدید؟
 

Arash75

Registered User
تاریخ عضویت
20 دسامبر 2002
نوشته‌ها
123
لایک‌ها
0
به نقل از programmer :
}
[/CODE]
فقط اگه یه توضیح در مورد این کد می دادید خیلی بهتر بود، چون افراد تازه کاری مثل من باید وقت زیادی برای فهمیدن جزئیات این کد بگذارند.
کد:
char ** array;
در واقع اشاره گری به یک اشاره گر است(اشاره گری به یک رشته).
بعد یک آرایه رو با استفاده از تخصیص حافظه پویا به array نسبت دادید و چک کردین خطایی رخ داده یا نه.
تابع memset هم که با شروع از ابتدای پارامتر اولش که یک اشاره گرهست، به اندازهای که پارامتر سوم که از نوع Size_t پارامتر دوم رو در اون اشاره گر قرار میده.
مثلآ
کد:
memset(str,'A' ,sizeof(char)*10)
اگه اندازه char یک بایت باشه ،10 بایت اول از str رو با کاراکتر A پر می کنه.
در مورد محتویات آدرس OxO (خانه صفر حافظه) میشه توضیح بدین؟
فکر کنم بهتره خودتون توضیح کامل رو بدین.

ببخشید کد خیلی روشن نیست. یک تیکه رو کپی کردم از یکی از سورس های خودم اینه که واضح نیست. در واقع این کار memset و متغییر status موقع delete کمک میکنه که من نیاوردم فقط قسمت new رو کپی کردم اجازه بده یک نمونه کد و attach کنم به یک پست دیگه چون ادیتور اینجا واسه کد منو اذیت میکنه!!!!
 

Arash75

Registered User
تاریخ عضویت
20 دسامبر 2002
نوشته‌ها
123
لایک‌ها
0
SampleCode رو نگاه کنید فکر کنم دیگه همه چیش روشنه ;)
 

فایل های ضمیمه

  • SampleCode.txt
    1.9 KB · نمایش ها: 57

mostafa_gm

Registered User
تاریخ عضویت
4 آپریل 2005
نوشته‌ها
1,863
لایک‌ها
438
محل سکونت
My House
این برنامه های شطرنج فقط حرکات رو انجام میدن یا واقعا AI هم دارن؟
 
بالا