PDA

View Full Version : آموزش: پیاده سازی حرکت اسب در شطرنج جهت Screen Saver (OpenSource)



ali_autumnal
دوشنبه 20 اردیبهشت 1389, 00:35 صبح
باسلام و خسته نباشید خدمت همه دوستان

برنامه ای نوشتم که حرکت اسب در شطرنج رو انجام میده که بصورت OpenSource در اختیار دوستان قرار میدم.

یک خواهش:

از این برنامه جهت ارائه به اساتید خودداری فرمائید! برنامه جهت یادگیری میباشد نه کپی و ارائه به اساتید جهت گرفتن نمره.

کابرد:
طراحی الگوریتم
هوش مصنوعی
شئ گرا
Screen Saver

الگوریتم و پیاده سازی اون توسط خودم نوشته شده و کاملا الگوریتمیک هست. فقط حرکت و انتخاب تعداد حالات ممکن در هر لحظه بصورت Random است. از مکان حاضر یکی از 8 حالت ممکن رو انتخاب میکنه و در آنجا مستقر میشه.

الگوریتم طوری طراحی شده است که هیچ حرکت تکراری انجام نمیشود. چون بصورت Random یکی از 8 حالت ممکن رو انتخاب میکنه در بدترین حالت تعداد حرکات 4 و در بهترین حالت 64 حرکت انجام خواهد شد. چون الگوریتم هوشمندانه نیست در نتیجه امکان گرفتار شدن در بن بست هر لحظه وجود دارد.

توضیح الگوریتم:
از دو ماتریس بنام Environment و MatrixMov استفاده شده که Environment همان صفحه شطرنج ما خواهد بود. (8 سطر و 8 ستون) در ابتدای الگوریتم کلیه مقادیر این ماتریس با مقدار 1 پرخواهد شد. (یک یعنی در این خانه هیچ مهره ای قرار نگرفته است. که در صورت قرار گرفتن مقدار آن به صفر تغییر خواهد کرد.)

MatrixMov یک ماتریس 5*5 ای است که اگر فرض را براین بزاریم که مهره اسب در سطر 2 و ستون 2 قرار داشته باشد فقط 8 حالت در هر لحظه جهت حرکت به مکان بعدی امکان پذیر خواهد بود. در هرلحظه از فراخوانی تابع getdata باید کلیه مقادیر این ماتریس برابر صفر گردد.

پس در هر لحظه مکان حاضر رو با اندیس inti,intj به تابع getdata ارسال میکنیم تا ماتریس MatrixMov را مقدار دهی نماید. مقدار دهی ماتریس MatrixMov با استفاده از ماتریس Environment خواهد بود. از روی مکان حاضر X مقدار مکان های بعدی که 8 حالت خواهد بود در ماتریس Environment به ماتریس MatrixMov قرار خواهد گرفت.

سپس تابع Check فراخوانی شده و یکی از خانه ها را جهت حرکت انتخاب می کند. خانه ای انتخاب خواهد شد که مقدار آن در ماتریس Environment یک باشد. در غیر اینصورت اصلا انتخاب نخواهد شد.

میخواستم الگوریتم رو کامل شرح بدم اما متاسفانه وقت ندارم. اگه سوالی داشتید بپرسید تا جواب بدم.

در ضمن:
با تغییر پسوند .exe به .scr فایل اجرایی به فایل Screen Saver تبدیل شده و در صورت کپی به فولدر system32 ویندوز میتونید برای Screen Saver استفاده کنید.
علی پاییزی
20/02/89
موفق باشید.

ali_autumnal
دوشنبه 20 اردیبهشت 1389, 09:39 صبح
دوستای خوبم دانلود کنید با آخرین تغییرات.

flash118
یک شنبه 21 شهریور 1389, 11:12 صبح
با سلام آقای ali_autumnal (http://www.barnamenevis.org/forum/member.php?u=65365) ببخشید در مورد اینه که اگه فایل exeرو به پسوند scr تبدیل کنیم خودش به اسکرین سرور تبدیل میشه میشه توضیح بدید چطور این کار انجام دادین چون برام خیلی جای سئوال شده البته یه حدس هایی زدم که میخواهم جواب شما رو ببینم و خودم محکی کوچلو بزنم بازم تشکر

ali_autumnal
چهارشنبه 24 شهریور 1389, 09:48 صبح
با سلام آقای ali_autumnal (http://www.barnamenevis.org/forum/member.php?u=65365) ببخشید در مورد اینه که اگه فایل exeرو به پسوند scr تبدیل کنیم خودش به اسکرین سرور تبدیل میشه میشه توضیح بدید چطور این کار انجام دادین چون برام خیلی جای سئوال شده البته یه حدس هایی زدم که میخواهم جواب شما رو ببینم و خودم محکی کوچلو بزنم بازم تشکر

خوب فايل scr همون exe هست. هيچ فرقي باهم ندارند. در اصطلاح پسوند اين scr هست و پسوند اون exe در اصل از لحاظ محتوايي و ساختاري هر دو يكي هستند.
موفق باشيد
علي پاييزي

arezo640
شنبه 11 دی 1389, 07:32 صبح
با سلام وخسته نباشید

لطف می کنید سورس کد این برنامه رو برام بذارین و این که در مورد طراحیش بیشتر توضیح بدید با تشکر

ali_autumnal
چهارشنبه 15 دی 1389, 19:11 عصر
با سلام وخسته نباشید

لطف می کنید سورس کد این برنامه رو برام بذارین و این که در مورد طراحیش بیشتر توضیح بدید با تشکر

با سلام

شرمندم که جواب رو خیلی دیر دادم. خیلی وقت بود به این سایت مراجعه نکرده بودم...

سورس کامل در اولین تایپیک موجود هست و میتونید بردارید و استفاده کنید بشرط رعایت حقوق...

در ضمن هر سوالی داشتید واضح بپرسید تا پاسخ بدم.
طراحی چی؟

موفق باشید
علی پاییزی