لینک کوتاه : https://magicfile.ir/?p=2502
هوش مصنوعی شطرنج تست محور با سی شارپ
مقدمه
این یک برنامه شطرنج کاملا کاربردی و در عین حال ساده است که هدف آن کمک به شما در درک نحوه کار یک موتور شطرنج است. در حال حاضر موتورهای شطرنج منبع باز در اینترنت وجود دارند که بر عملکرد بالا تمرکز دارند. این یک راه حل استاندارد C# شی گرا است که درک آن آسان تر است. تمرکز بر ساخت یک موتور شطرنج سریع و با امتیاز بالا نبوده است. من یک هوش مصنوعی شطرنج ایجاد کردهام که حرکات خوبی را با کدهایی انجام میدهد که امیدواریم دوست داشته باشید آن را بخوانید. تعدادی از اهداف خاص تر، پیاده سازی صحیح Alpha Beta Pruning و Zobrist Hashing با استفاده از C# بوده است.
زمینه
حدود ده سال پیش سعی کردم موتور شطرنج را پیاده کنم و موفق نشدم. این بار، تصمیم گرفتم از روش اول تست مبتنی بر توسعه (TDD) استفاده کنم. من TDD را دوست دارم و فکر می کنم استفاده از TDD دلیل اصلی کارکرد موتور این بار بود. بسیار مهم است که قوانین شطرنج 100٪ به درستی اجرا شود. به همان اندازه مهم این است که حرکات لغو دقیقاً به حالت قبلی منتهی شود. من همچنین فکر می کنم که TDD به ساختار کد خوب و طراحی سیستم قابل نگهداری کمک می کند.
کد
راه حل شامل دو پروژه اصلی است. موتور ( chess.dll ) و رابط کاربری. Chess.dll همه چیز در مورد بازی، صفحه، قوانین و موتور دارد. همچنین شامل تمامی تست ها می باشد. من در این پیاده سازی دلیلی برای داشتن واحد تست در یک پروژه جداگانه ندیدم. به این ترتیب می توان به راحتی متوجه شد که چه واحد تست هایی متعلق به کدام کلاس هستند.
در حال حاضر 82 تست وجود دارد. اکثر آنها بسیار سریع هستند و پوشش کد حدود 100٪ است. تعداد کل خطوط کد، شامل تست ها و رابط کاربری، کمتر از 4000 است. موتور و کلاس بازی که بیشتر منطق است، کمتر از 900 خط کد است.
همچنین پروژه کوچکی به نام BitChess در دست ساخت است.
Chess UI یک برنامه Windows Forms است که تنها دارای چند ویژگی مانند بارگذاری، ذخیره و تنظیم زمان برای تفکر کامپیوتر است. همچنین می توانید موقعیت های برد سفارشی را ویرایش و تنظیم کنید و موقعیت های FEN را ذخیره و بارگذاری کنید.
برای شما کاربر عزیز پیشنهاد دانلود داده می شود