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
موفق باشید.
برنامه ای نوشتم که حرکت اسب در شطرنج رو انجام میده که بصورت 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
موفق باشید.