-
پنج شنبه 10 مرداد 1387, 12:11 عصر
#1
کاربر دائمی
الگوریتم موتور بازی شطرنج
سلام دوستان
من یه برنامه شطرنج نوشتم ، شامل قسمت های زیره :
1- محیط گرافیکی
2- موتور بازی
3- پایگاه داده مربوط به Opening ها
در مورد محیط گرافیکی و پایگاه داده که بحث خاصی نیست .
مهمترین قسمت این برنامه ، موتور بازی ه
موتوری که من نوشتم این ویژگی ها رو داره :
1- نحوه بازی : آنالیز Position از طریق درخت Min-Max
2- بهینه سازی درخت آنالیز از طریق حرص Alpha - Beta
3- عمق پیمایش : 4
4- ارزیابی هر Position به وسیله شمارش تعداد مهره ها و جمع برداری ارزش مهره ها
5- بهینه سازی استفاده از حافظه ( در هر لحظه فقط مسیر جاری در حافظه است ، و در پایان کار ، تنها بهترین مسیر در حافظه است . )
ضعف های اصلی این موتور در عمق پیمایش و نحوه ارزیابی هر Position ه
حل مشکل عمق پیمایش ساده است ، ولی همون طور که می دونید افزایش عمق پیمایش از 4 به 5 معادل افزایش زمان محاسبات به صورت تصاعدیه ( تصاعد هندسی ) . پس عملا نمیشه به همین سادگی عمق پیمایش رو افزایش داد .
ولی در مورد تابع evaluate که وظیفه Analysis هر Position رو بر عهده داره ، میشه کاری کرد که با Analysis بهتر ، نتیجه محاسبات موتور رو بهتر کنه .
بهترین روشی که میشه به کار برد (از نظر من ) ، اینه که از یه الگوریتم پیشگو برای تابع Evaluate در نظر گرفت که با یه آنالیز پیشگو هم در عمق ( نه به صورت درختی ) پیش بره و هم ارزیابی منطقی از Position رو بده . 
دوستان ، به نظر با هم فکری همدیگه بتونیم یه همچین الگوریتمی رو طراحی کنیم .
خوشحال میشم اگه منو از نظراتون بهره مند کنید .
ممنون .
.
برچسب های این تاپیک
قوانین ایجاد تاپیک در تالار
- شما نمی توانید تاپیک جدید ایجاد کنید
- شما نمی توانید به تاپیک ها پاسخ دهید
- شما نمی توانید ضمیمه ارسال کنید
- شما نمی توانید پاسخ هایتان را ویرایش کنید
-
قوانین سایت