یارا فایل

مرجع دانلود انواع فایل

یارا فایل

مرجع دانلود انواع فایل

الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر )

اختصاصی از یارا فایل الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر ) دانلود با لینک مستقیم و پر سرعت .

الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر )


الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر )

مساله هشت وزیر از جمله مسائل پرمخاطب مباحث طراحی الگوریتم است. ۸  مهره وزیر رو روی صفحه شطرنج چنان بچینید که نتونن همدیگه رو تهدید کنن.

برای افرادی که با بازی شطرنج آشنایی ندارن:

وزیر مهره ای از مهره های بازی شطرنجه که می تونه در تمامی 8 جهت هر تعداد خانه – تا زمانی که مهره ای مانع نباشه – حرکت کنه و اگه در یکی از این خانه ها مهره حریف قرار داشته باشه تهدیدش کنه.

مساله هشت وزیر :  ما مساله رو در حالت کلی در نظر می گیریم. یعنی زمانی که ابعاد صفحه شطرنج n در n و تعداد مهره ها n هستش. ( n > 3 ) روشهای مختلفی برای پیدا کردن جواب وجود داره. یکی از این روشها چیدن تصادفی مهره ها روی صفحه شطرنجه! به عبارت دیگه n مهره رو به صورت تصادفی در خانه های مختلف صفحه قرار می دیم و بررسی می کنیم که آیا شرط مساله رو برآورده می کنن یا نه؟ این روش بسیار سریع ما رو به جواب می رسونه. اما ایرادی که داره نمی شه مطمئن بود بشه به همه حالتهای چینش دست پیدا کرد. در صفحه 8 در 8 شطرنج این مساله 92 جواب مختلف داره. شما ممکنه روش تصادفی رو هزار بار به کار ببرید، اما نتونید همه 92 حالت ممکنه رو به دست بیارید. این روش زمانی مفیده که پیدا کردن یه جواب برای ما کافی باشه.

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

برای پیاده سازی چنین الگوریتمی و تشخیص اینکه چه خانه هایی از سطر امن هستن روشهای مختلفی وجود داره. ساده ترینشون اینه که هر بار تمامی خانه هایی رو که امکان تهدید شدن از اونها وجود داره بررسی کنیم تا از قرار نداشتن مهره وزیر در اونها مطمئن باشیم. اما این روش اصلا کارا و بهینه نیست.

روش دیگه تعریف کردن صفحه شطرنج به صورت یه آرایه n در n هستش که خونه های امن و غیر امن با علامتگذاری مشخص می شن. هر بار که مهره ای رو صفحه قرار می گیره تمام خونه هایی که توسط این مهره تهدید می شن به صورت غیر امن علامتگذاری می شن. به این ترتیب می شه فهمید که هر خونه با توجه به چینش مهره های قبلی امن هست یا نه؟ اما این روش هم معایبی داره که باعث می شه به روش سوم رجوع کنیم. برای آشنایی با این معایب کافیه سعی کنید کد برنامه رو بنویسید!

در روش سوم که من ازش استفاده کردم، برای علامتگذاری خانه های امن و غیر امن از شیوه دیگه ای بهره می بریم. به این ترتیب که اقطار راست به چپ، چپ به راست و ستونها با شماره هایی مشخص می شن که کار علامتگذاری رو بسیار ساده می کنن. این روش بدون شک از کاراترین روشهای رسیدن به جواب مساله ماست. هم سرعت اجرای بالایی داره و هم حافظه مصرفی بسیار کم!

کدی که به زبان ++C درباره این مساله نوشته شده با استفاده از روش سوم تعداد جوابهای ممکن – و نه خود جوابها – برای مقادیر مختلف n رو مشخص می کنه. به عنوان مثال اگر n رو 8 وارد کنید خروجی برنامه 92 خواهد بود. توصیه می کنم برای nهای بزرگ برنامه رو امتحان نکنید! اگر n رو 16 وارد کنید بعد از گذشتن زمان زیادی عدد 14772512 روی صفحه نمایش چاپ می شه. یعنی در صفحه شطرنج 16 در 16 حدود ۱۵ میلیون حالت مختلف برای چیدمان صحیح وجود داره!!


دانلود با لینک مستقیم


الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر )

پروژه طراحی بدنه ایرشیب ها وزیر دریای ها. doc

اختصاصی از یارا فایل پروژه طراحی بدنه ایرشیب ها وزیر دریای ها. doc دانلود با لینک مستقیم و پر سرعت .

پروژه طراحی بدنه ایرشیب ها وزیر دریای ها. doc


پروژه طراحی بدنه ایرشیب ها وزیر دریای ها. doc

 

 

 

 

 

 

 

نوع فایل: word

قابل ویرایش 110 صفحه

 

مقدمه:

در طراحی بدنه ایرشیپ‌ها و زیر دریائی‌ها نکات زیادی مورد توجه قرار می‌گیرد که مهمترین آنها قدرت جلوبرندگی است که به مقدار زیادی بستگی به درگ اصطکاکی روی بدنهایرشیپ دارد و 3/2 درگ کل را شامل می‌شود. کاهش کوچکی در این درگ باعث صرفه جویی قابل توجهی در سوخت می‌شود و یا می‌تواند باعث افزایش ظرفیت حمل و ابعاد ایرشیپ شود.

اولین بهینه سازی عددی شکل، توسطپارسنز انجام شده است. روش محاسبه در قالب یک پنل کدمی‌باشدکه با یکروش لایه مرزی کوپل شده است. زدان یک توزیع محوری از چشمه و چاه را برای نشان دادن میدان جریان اطراف یک جسم معرفیمی‌کند. قدرت (شدت) به صورت خطی رویهر المان طول توزیع می‌شود.

در روند محاسباتی آیرودینامیکی ابتدا یک بدنه دوار با ماکزیمم قطر ثابت و نسبت فایننسثابت تعریف می‌شود.پروفیل بدنه و توزیع سرعتجریان غیر لزج توسط روشهای غیر مستقیم حل جریان پتانسیل بدست می‌آید. پروفیل این بدنه بایدبه گونه‌ای باشد که در جریان یکنواخت موازی بامحور بدنه، لایه مرزی دچار جدایش نشود. با این قید، درگ توسط تغییر در شکل پروفیل بدنه کاهش می‌یابد. محدودیت در عدم جدایش لایه مرزی باعث حذف درگفشاری می‌شود و درگ کلی منحصر به نیروهای ویسکوز در لایه مرزی می‌شود. لایه مرزی به سه ناحیه آرام گذراو درهم تقسیم

می‌شود. برای محاسبه لایه مرزی آرام ازمتد توویتس استفاده شده کهبر اساس رابطۀ مومنتوم می‌باشد. ناحیه گذرا در محاسبات به صورتیک نقطه در نظر گرفته می‌شود که در آن ضریب شکل به طور ناگهانی از آخرین مقدار در ناحیه آرام به اولین مقداردر ناحیه درهم تغییر می‌کند. از آنجا که محل گذر به عواملی مانند: زبری سطحی، سر و صدا، لرزش و غیره بستگی دارد که کنترل آنها مشکل است در بیشتر تحقیقات این ناحیه را بهصورت دلخواه بین سه تا ده درصد طول بدنه در نظر می‌گیرند.

محاسبات لایه مرزی مغشوش بر اساس یک روش ساده انتگرالی معادله مومنتوم بنا شده است، که توسط شینبروکو سامنربرای جریان با تقارن محوری بدست آمده است. از آنجا که لایه مرزی مجاز به جدایش نیست درگ از نقصان مومنتوم در انتهای لایه مرزیمحاسبه می‌شود.

حل این مسأله در ساخت اژدرها، زیر دریائی‌ها و ایرشیپ‌ها مورد استفاده قرار می‌گیرد. بعضی از این گونه‌ها پروفیل بدنه را به صورت یک یا دو چند جمله‌ای از درجات مختلف نشان می‌دهند و شامل پارامترهایی مانند شعاع در دماغه و انتهای دم محل نسبی قطر ماکزیمم و شعاع طولی در آن نقطه و شیب دم هستند. بوسیله تغییر در بعضی یا همه این پارامترها در شکلهای مختلف درگ کاهش یافته است. دیگران سعی کرده‌اند که مستقیمااز کپی پروفیل بدنه ماهی‌های پرسرعت و پرندگان این کار را دنبال کنند. نتیجه تمام این تلاشها منجر به طبقه بندیبدنه هایی با درگ پایین شده است و گرچه از نظر شکل متفاوت هستند ولی ضریب درگهایی خیلی شبیه به هم دارند

 

فهرست مطالب:

فهرست علائم

فهرست جداول

فهرست اشکال

فصل اول

مقدمه و مطالعات پیشین

مقدمه و مروری بر تحقیقات گذشته

مدل آیرودینامیکی

فصل دوم

معادلات حاکم و روش حل عددی

2-1 مقدمه

2-2 محاسبات لایه مرزی

2-2-1 محاسبات لایه مرزی آرام

2-2-2محاسبات ناحیه گذرا

3-2-2محاسبات لایه مرزی درهم

4-2-2 روش محاسبه درگ

5-2-2معیار جدایش

فصل سوم

الگوریتم و برنامه به همراه ورودی و خروجی های برنامه

3-1 روند محاسبه درگ

3-2 الگوریتم محاسبات لایه مرزی آرام

3-3 الگوریتم محاسبات ناحیه گذرا

3-4 الگوریتم محاسبات لایه مرزی درهم و ضریب درگ

3-5 برنامه کامپیوتری به زبان فرترن

3-6 ورودی و خروجی های برنامه برای پروفیل های بدنه شماره 1 تا 7

3-6-1 ورودی برنامه برای پروفیل بدنه شماره 1

3-6-2 خروجی برنامه برای پروفیل بدنه شماره 1

3-6-3 ورودی برنامه برای پروفیل بدنه شماره 2

3-6-4 خروجی برنامه برای پروفیل بدنه شماره 2

3-6-5 ورودی برنامه برای پروفیل بدنه شماره 3

3-6-6 خروجی برنامه برای پروفیل بدنه شماره 3

3-6-7ورودی برنامه برای پروفیل بدنه شماره 4

3-6-8 خروجی برنامه برای پروفیل بدنه شماره 4

3-6-9ورودی برنامه برای پروفیل بدنه شماره 5

3-6-10خروجی برنامه برای پروفیل بدنه شماره 5

3-6-11 ورودی برنامه برای پروفیل بدنه شماره 6

3-6-12 ورودی برنامه برای پروفیل بدنه شماره 7

3-6-13 خروجی برنامه برای پروفیل بدنه شماره 6و7

فصل چهارم

ارائه نتایج و بحث و مقایسه

4-1 مقدمه

4-2 نتایج و بحث برای پروفیل بدنه شماره 1

4-3 نتایج و بحث برای پروفیل بدنه شماره 2

4-4 نتایج و بحث برای پروفیل بدنه شماره 3

4-5 نتایج و بحث برای پروفیل بدنه شماره 4

4-6 نتایج و بحث برای پروفیل بدنه شماره 5

4-7 نتایج و بحث برای پروفیل بدنه شماره 6و7

4-8 نمودارهای مربوط به پروفیل بدنه شماره 1

4-9 نمودارهای مربوط به پروفیل بدنه شماره 2

4-10 نمودارهای مربوط به پروفیل بدنه شماره 3

4-11 نمودارهای مربوط به پروفیل بدنه شماره 4

4-12 نمودارهای مربوط به پروفیل بدنه شماره 5

4-13 مقایسه ضریب درگ

فصل پنجم

نتیجه گیری و پیشنهادات

5-1 نتیجه گیری

5-2 پیشنهاداتی برای تحقیقات آینده

فهرست مراجع

پیوست"الف"

 

فهرست جداول:

جدول 3-1 ورودی‌های برنامه برای پروفیل بدنه شماره 1

جدول 3-2 خروجی‌های برنامه برای پروفیل بدنه شماره 1

جدول 3-3 ورودی‌های برنامه برای پروفیل بدنه شماره 2

جدول 3-4 خروجی‌های برنامه برای پروفیل بدنه شماره 2

جدول 3-5 ورودی‌های برنامه برای پروفیل بدنه شماره 3

جدول 3-6 خروجی‌های برنامه برای پروفیل بدنه شماره 3

جدول 3-7 ورودی‌های برنامه برای پروفیل بدنه شماره 4

جدول 3-8 خروجی‌های برنامه برای پروفیل بدنه شماره 4

جدول 3-9 ورودی‌های برنامه برای پروفیل بدنه شماره 5

جدول 3-10 خروجی‌های برنامه برای پروفیل بدنه شماره 5

جدول 3-11 ورودی‌های برنامه برای پروفیل بدنه شماره 6

جدول 3-12 ورودی‌های برنامه برای پروفیل بدنه شماره 7

جدول 4-1 ضریب درگ برای پروفیل‌های بدنه یک تا پنج

 

فهرست اشکال:

شکل 1-1 پروفیلهای بدنه با کمترین درگ

شکل 1-2 مدل آیرودینامیکی

شکل 1-3 توزیع المانهای سینگولاریتی محوری و شدت در21 نقطه طول بدنه

شکل 3-1 پروفیل بدنه شماره 1

شکل 3-2 پروفیل بدنه شماره 2

شکل 3-3 پروفیل بدنه شماره 3

شکل 3-4 پروفیل بدنه شماره 4

شکل 3-5 پروفیل بدنه شماره 5

شکل 3-6 پروفیل بدنه شماره 6

شکل 3-7 پروفیل بدنه شماره7

شکل4-1 منحنی تغییرات ضخامت ممنتوم بر حسب طول ایرشیپ درناحیه درهمبرای پروفیل شماره 1

شکل4-2 منحنی تغییرات ضریب شکل بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 1

شکل4-3 منحنی تغییرات ضخامت جابجایی بدون بعد بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 1

شکل4-4 منحنی تغییرات ضخامت لایه مرزی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 1

شکل4-5 منحنی تغییرات ضریب اصطکاک سطحی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 1

شکل4-6 منحنی تغییرات عدد رینولدز(که براساس ضخامت مومنتوم تعریف شده) بر حسب طول ایرشیپ برای پروفیل شماره 1

شکل4-7 منحنی تغییرات ضخامت ممنتوم بر حسب طول ایرشیپ درناحیه درهمبرای پروفیل شماره 2

شکل4-8 منحنی تغییرات ضریب شکل بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 2

شکل4-9 منحنی تغییرات ضخامت جابجایی بدون بعد بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 2

شکل4-10 منحنی تغییرات ضخامت لایه مرزی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 2

شکل4-11 منحنی تغییرات ضریب اصطکاک سطحی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 2

شکل4-12 منحنی تغییرات عدد رینولدز(که براساس ضخامت مومنتوم تعریف شده) بر حسب طول ایرشیپ برای پروفیل شماره 2

شکل4-13 منحنی تغییرات ضخامت ممنتوم بر حسب طول ایرشیپ درناحیه درهمبرای پروفیل شماره 3

شکل4-14 منحنی تغییرات ضریب شکل بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 3

شکل4-15 منحنی تغییرات ضخامت جابجایی بدون بعد بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 3

شکل4-16 منحنی تغییرات ضخامت لایه مرزی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 3

شکل4-17 منحنی تغییرات ضریب اصطکاک سطحی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 3

شکل4-18 منحنی تغییرات عدد رینولدز(که براساس ضخامت مومنتوم تعریف شده) بر حسب طول ایرشیپ برای پروفیل شماره 3

شکل4-19 منحنی تغییرات ضخامت ممنتوم بر حسب طول ایرشیپ درناحیه درهمبرای پروفیل شماره 4

شکل4-20 منحنی تغییرات ضریب شکل بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 4

شکل4-21 منحنی تغییرات ضخامت جابجایی بدون بعد بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 4

شکل4-22 منحنی تغییرات ضخامت لایه مرزی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 4

شکل4-23 منحنی تغییرات ضریب اصطکاک سطحی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 4

شکل4-24 منحنی تغییرات عدد رینولدز(که براساس ضخامت مومنتوم تعریف شده) بر حسب طول ایرشیپ برای پروفیل شماره4

شکل4-25 منحنی تغییرات ضخامت ممنتوم بر حسب طول ایرشیپ درناحیه درهمبرای پروفیل شماره 5

شکل4-26 منحنی تغییرات ضریب شکل بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 5

شکل4-27 منحنی تغییرات ضخامت جابجایی بدون بعد بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 5

شکل4-28 منحنی تغییرات ضخامت لایه مرزی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 5

شکل4-29 منحنی تغییرات ضریب اصطکاک سطحی بر حسب طول ایرشیپ درناحیه درهم برای پروفیل شماره 5

شکل4-30 منحنی تغییرات عدد رینولدز(که براساس ضخامت مومنتوم تعریف شده) بر حسب طول ایرشیپ برای پروفیل شماره 5

شکل 4-31 نتایج بدست آمده توسط لوتز و واگنر برای ضریب درگ به روش اپلر

 

منابع و مأخذ:

مراجع انگلیسی

1- Vahid Nejati and Kazuo Matsuuchi, Aerodynamics Design and Genetic Algorithms for Optimization of Airship Bodies, JSME, No. 02-4140, (2002).

2- Parsons, J.S. and Goodson R.E, Shaping of Axisymmetric Bodies for Minimum Drag in Incomperessible Flow J. Hydronautics, Vol. 8, No. 3 (1974).

3- Zedan, M. F., Potential Flow Around AxisymMetric Bodies, Direct and Inverse Problem, Ph.D. Dissertation, University of Houston, (1979).

4- Pinebrook, W. E., Drag Minimization on a Body of Revolution, Dissertation in the University of Houston, (1982).

5- Young, A. D., the Calculation of Total and Skin Friction Drags of Bodies of Revolution at Zero Iincidence ARC R & M, No. 1874 (1939).

6- Rechenberg, I., Evolution Strategie: Optimize-rung Technischer Systeme Nach Prinzipien der Biologischen Evolution, (1973), Frommann-holz-boog verlag, Stuttgart.

7- Holland, J., Adaptation in Natural and Artificial System, (1975), University of Michigan Press annarbor.

8- Cebeci, T. and Bradshaw, P., Momentum Transfer in Boundary Layers, McGraw- Hill, (1977).

9- Nash, J.F., Turbulent Boundary Layer Behavior and the Auxiliary Equation, ARC CP 835, London (1965).

10- Shanebrook, J.R. and Sumner, W.J., Entrainment Theory for Axisymmetric Turbulent Incompressible Boundary Layer, J. Hydronautics, Vol. 4, No. 4 (1970).

11- Standen N.M., A Concept of Mass Entrainment Applied to Compressible Turbulent Boundary Layers in Adverse Pressure Gradients, Proceedings on the 4th Congress of ICAS, pp. 1101-1125 (1965).

12- Schlichting, H., Boundary Layer Theory, McGraw –Hill Book Co., N.Y. (1968).

13- Lutz, Th.and Wagner, S., Drag Reduction and shape Optimization Air ship Bodies, J. Aircraft, vol.35, No3.(1998) , pp. 345 –

13- Mathews, John, H, Numerical methods for methmatics science and engineering (1943).

14- Smith, I. M, Programming in Fortran 90 for engineers and scientists (1995).


دانلود با لینک مستقیم


پروژه طراحی بدنه ایرشیب ها وزیر دریای ها. doc

گامبی وزیر پذیرفته نشده Queen\'s Gambit Declined

اختصاصی از یارا فایل گامبی وزیر پذیرفته نشده Queen\'s Gambit Declined دانلود با لینک مستقیم و پر سرعت .

گامبی وزیر پذیرفته نشده Queen\


فیلم شطرنج گامبی وزیر پذیرفته نشده   Queen\'s Gambit Declined  by Andrew Martin

گامبی وزیر پذیرفته نشده

Queen's Gambit Declined

by Andrew Martin

مدت زمان فیلم : 4 ساعت و 23 دقیقه

دی وی دی کامل نسخه کم حجم

Level: Advanced, Tournament player

گامبی وزیر پذیرفته نشده (معروف به QGD) پاسخ مطمئنی به d4 است. گامبی مورد علاقه بسیاری از قهرمانان جهان از گذشته تا به امروز، که شهرت این گامبی هرگز به زیر سوال نرفته است . پس از حرکات d4 d5  c4 e6 ، سیاه مرکز مستحکمی را ایجاد می کند و به شکل سنتی بازی می کند؛ بمنظور گسترش ساده و سریع به قلعه رفتن برای حفظ کنترل مرکز. QGD گامبی مورد علاقه بازیکنان باشگاهی و حرفه ای است، بخاطر نداشتن شاخه های اجباری و شانس هایی برای بهتر بازی کردن از رقیب خود با استفاده از استراتژی های عالی وسط بازی. به بیان ساده، این مجموعه دی وی دی را تماشا کنید تا درک کلی شما از شطرنج افزایش بیابد! در دومین نسخه مجموعه دی وی دی ChessBase به سبک « استاد و مبتدی » به زبان انگلیسی ، استاد بین المللی لورین د کوستا و متخصص نرم افزار شطرنج نیک مورفی ایده های اصلی گامبی وزیر را به شکل ساده و قابل فهم و سنتی به شما آموزش می دهد. در این مجموعه دی وی دی آنها موارد زیر را بررسی میکنند:

  • دفاع تارتاکور و لاسکر

  • واریانت تعویضی خطرناک

  • شاخه هایی Bf4

  • تلاش های دیگر علیه گامبی وزیر مثلاً کاتالان

مجموعه « استاد و مبتدی » به شما کمک می کند تا شطرنج را به صورت حرفه ای بیاموزید.

برای تماشای این فیلم آموزشی میتوانید نرم افزار رایگان ChessBase Reader را در زیر دانلود کنید

دانلود با لینک مستقیم با حجم 36.95 مگابایت 


دانلود با لینک مستقیم


گامبی وزیر پذیرفته نشده Queen\'s Gambit Declined

دانلود مقاله پیاده سازی گرافیکی هشت وزیر با C#

اختصاصی از یارا فایل دانلود مقاله پیاده سازی گرافیکی هشت وزیر با C# دانلود با لینک مستقیم و پر سرعت .

دانلود مقاله پیاده سازی گرافیکی هشت وزیر با C#


دانلود مقاله  پیاده سازی گرافیکی هشت وزیر با C#

 

مشخصات این فایل
عنوان: پیاده سازی گرافیکی هشت وزیر با C#
فرمت فایل : word( قابل ویرایش)
تعداد صفحات: 18

این مقاله درمورد پیاده سازی گرافیکی هشت وزیر با C# می باشد.

بخشی از تیترها به همراه مختصری از توضیحات هر تیتر از مقاله پیاده سازی گرافیکی هشت وزیر با C#

گام نخست : پیاده سازی مهره و کاشی بازی
مهره نشان دهنده وزیر    
 را ایجاد کنید.eight_queen ای به نام  Windows Application  برنامه Visual C# را اجرا کنید و از قسمت Visual Studio
SquareControl.cs به نام User Control یک Add new item بر روی پروژه یتان کلیک راست کنید و از قسمت
 کاشی صفحه شطرنج ما را می سازدUser control را ایجاد کنید.در واقع این
 این کنترل را به 32, 32 تغییر می دهیم.حالا کاشی تخته یمان آماده شد!size
 تخته یمان که به شکل دایره است می  رسد(Discs)نوبت به طراحی مهره های
این مهره ها را می توان به 2 صورت پیاده سازی کرد:
با قرار دادن عکس وزیر  درون کاشی های شطرنج   .1
با کشیدن دایره درون کاشی های  شطرنج.   .2
که در این مقاله  راه دوم را برگزیدیم.یعنی با کد زیر دایره ای با رنگ سفید یا سیاه درون کاشی هایمان رسم می کنیم.
e.Graphics.DrawEllipse(SquareControl.pen, left, top, width, height);
 را حذف کردیم و آنرا به گام های بعدی محول کرده ایم.shadow و animationدر این گام ما قسمت .....(ادامه دارد)

گام هشتم : تعریف متغییر های تخته بازی
در  پیاده سازی بازی هشت وزیر از متغییر های زیر استفاده شده است :
private Board board;
private eightQueen queen;
private Boolean[, ,] memory;
private   Int32 moveNumber;
در اینجا کلاس eighteQueen در واقع نشان دهنده کلاسی است که الگوریتم بازی در آن نوشته شده است.
آرایه سه بعدی memory هم نشان دهنده مکان 8 وزیر در 92 حالت ممکن است.اندیس اول و دوم این آرایه مختص ردیف و ستون بازی می باشد و اندیس سوم این آرایه برای نگه داری 92 حالت ممکن بازی می باشد.این آرایه به صورت Boolean نمایش داده شده است.به این معنا که محتویات این ارایه می تواند True یا False باشد.در صورتی که مهره ای درون صفحه نباشد،مقدار این متغییر False میشود و در صورتی که بر اساس الگوریتم،مهره وزیری در این مکان وجود داشته باشد،مقدار این متغییر True می شود .....(ادامه دارد)

گام پنجم : چیدن مهره ها در صفحه شطرنج
حالا به مهم ترین قسمت طراحیمان که همان طراحی مهره ها می باشد میرسیم.در این مرحله ما باید هر دفعه که
 ما فراخوانی می شود، مهرهایمان ها را بچینیم.
می باشد.  SquareControl_Paint ای که می توانیم برای اینکار فراخوانی کنیم،eventبهترین
 ما فراخوانی میشود. کد های درونUser controlحالا با قرار دادن کدهایمان درون این تابع هربار که
آن اجرا می شود.
برای اینکه ما بهترین حالت نمایش مهره هایمان را داشته باشیم،باید قطعه کدی را بنویسیم که به رایانه بگوییم هدف ما یک گرافیک خوب می باشد نه یک طراحی سریع و یا بدون لرزش. قطعه کد زیر اختیاری است به این معنی که اگر قطعه کد زیر را وارد نکینم، باز هم برنامه ما اجرا می شود ولی گرافیک برنامه ما پایین می آید:
 // Set drawing options.
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
 حالا ما با دستور شرطی حالتی را میسنجیم که در صورت برقرار بودن  هر یک از 2 شرط زیر دستور مربوطه اجرا شود:
1.    کاشی ما در حال حاضر دارای هیچ مهر ای نباشد
2.    محتویات جدید کاشی ما مهره سیاه باشد.
if (this.Contents != Board.Empty)
در مرحله بعد،باید مکان مهره را درون صفحه شطرنج مشخص کنیم. همانگونه که از قبل به یاد دارید مهره های ما بصورت یک دایره بوسیله کد زیر روی کاشی هایمان رسم
رسم میکنیم:
e.Graphics.FillEllipse(SquareControl.solidBrush, left, top, width, height);
) مهره هایمان روی کاشی از کد زیر استفاده می کنیمpositionخوب،برای تعیین مکان (           
// Get size and position parameters based on the control size.
Int size = (int) (this.Width * (0.80));
int offset    = (int) ((this.Width – size) / 2);
int thickness = (int) (size * 0.08);
int width     = size;
int height    = size;
int left      = offset;
int top       = offset + (int) Math.Round((double) (size – height) / 2.0);
حالا درون شرط بالا، شرط دیگری را اضافه میکنیم.در این شرط بررسی می کنیم که .....(ادامه دارد)

فهرست مطالب مقاله پیاده سازی گرافیکی هشت وزیر با C#

مقدمه    3
معرفی نویسنده اثر    3
درباره این مقاله    3
مخاطبان این مقاله    3
هدف از نوشتن این مقاله    3
فصل اول : طراحی    4
گام نخست : پیاده سازی مهره و کاشی بازی    4
گام دوم : تعریف پارامترها و نام دامنه برای User Control ها    5
گام سوم : تابع تنظیم ردیف و ستون    6
گام چهارم : ایجاد و نابود سازی User Control ها    7
گام پنجم : چیدن مهره ها در صفحه شطرنج    8
گام ششم : کشیدن حاشیه بین کاشی ها    10
گام هفتم : نگاه کلی بر کلاس SquareControl    11
فصل دوم : پیاده سازی محیط بازی    12
گام هشتم : تعریف متغییر های تخته بازی    12
گام نهم : پیاده سازی تابع سازنده تخته بازی    13
گام دهم : ذخیره 92 حالت مختلف    14
فصل سوم : الگوریتم هشت وزیر به روش غیر بازگشتی    15
گام یازدهم : معرفی الگوریتم    15
گام دوازدهم : روش بررسی صحّت قرار گیری مهره    16
فصل چهارم : الگوریتم هشت وزیر به روش بازگشتی    17
گام سیزدهم : معرفی الگوریتم    17
گام چهاردهم : روش بررسی صحّت قرارگیری مهره    17


دانلود با لینک مستقیم


دانلود مقاله پیاده سازی گرافیکی هشت وزیر با C#

الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر )

اختصاصی از یارا فایل الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر ) دانلود با لینک مستقیم و پر سرعت .

الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر )


الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر )

مساله هشت وزیر از جمله مسائل پرمخاطب مباحث طراحی الگوریتم است. ۸  مهره وزیر رو روی صفحه شطرنج چنان بچینید که نتونن همدیگه رو تهدید کنن.

برای افرادی که با بازی شطرنج آشنایی ندارن:

وزیر مهره ای از مهره های بازی شطرنجه که می تونه در تمامی 8 جهت هر تعداد خانه – تا زمانی که مهره ای مانع نباشه – حرکت کنه و اگه در یکی از این خانه ها مهره حریف قرار داشته باشه تهدیدش کنه.

مساله هشت وزیر :  ما مساله رو در حالت کلی در نظر می گیریم. یعنی زمانی که ابعاد صفحه شطرنج n در n و تعداد مهره ها n هستش. ( n > 3 ) روشهای مختلفی برای پیدا کردن جواب وجود داره. یکی از این روشها چیدن تصادفی مهره ها روی صفحه شطرنجه! به عبارت دیگه n مهره رو به صورت تصادفی در خانه های مختلف صفحه قرار می دیم و بررسی می کنیم که آیا شرط مساله رو برآورده می کنن یا نه؟ این روش بسیار سریع ما رو به جواب می رسونه. اما ایرادی که داره نمی شه مطمئن بود بشه به همه حالتهای چینش دست پیدا کرد. در صفحه 8 در 8 شطرنج این مساله 92 جواب مختلف داره. شما ممکنه روش تصادفی رو هزار بار به کار ببرید، اما نتونید همه 92 حالت ممکنه رو به دست بیارید. این روش زمانی مفیده که پیدا کردن یه جواب برای ما کافی باشه.

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

برای پیاده سازی چنین الگوریتمی و تشخیص اینکه چه خانه هایی از سطر امن هستن روشهای مختلفی وجود داره. ساده ترینشون اینه که هر بار تمامی خانه هایی رو که امکان تهدید شدن از اونها وجود داره بررسی کنیم تا از قرار نداشتن مهره وزیر در اونها مطمئن باشیم. اما این روش اصلا کارا و بهینه نیست.

روش دیگه تعریف کردن صفحه شطرنج به صورت یه آرایه n در n هستش که خونه های امن و غیر امن با علامتگذاری مشخص می شن. هر بار که مهره ای رو صفحه قرار می گیره تمام خونه هایی که توسط این مهره تهدید می شن به صورت غیر امن علامتگذاری می شن. به این ترتیب می شه فهمید که هر خونه با توجه به چینش مهره های قبلی امن هست یا نه؟ اما این روش هم معایبی داره که باعث می شه به روش سوم رجوع کنیم. برای آشنایی با این معایب کافیه سعی کنید کد برنامه رو بنویسید!

در روش سوم که من ازش استفاده کردم، برای علامتگذاری خانه های امن و غیر امن از شیوه دیگه ای بهره می بریم. به این ترتیب که اقطار راست به چپ، چپ به راست و ستونها با شماره هایی مشخص می شن که کار علامتگذاری رو بسیار ساده می کنن. این روش بدون شک از کاراترین روشهای رسیدن به جواب مساله ماست. هم سرعت اجرای بالایی داره و هم حافظه مصرفی بسیار کم!

کدی که به زبان ++C درباره این مساله نوشته شده با استفاده از روش سوم تعداد جوابهای ممکن – و نه خود جوابها – برای مقادیر مختلف n رو مشخص می کنه. به عنوان مثال اگر n رو 8 وارد کنید خروجی برنامه 92 خواهد بود. توصیه می کنم برای nهای بزرگ برنامه رو امتحان نکنید! اگر n رو 16 وارد کنید بعد از گذشتن زمان زیادی عدد 14772512 روی صفحه نمایش چاپ می شه. یعنی در صفحه شطرنج 16 در 16 حدود ۱۵ میلیون حالت مختلف برای چیدمان صحیح وجود دارد


دانلود با لینک مستقیم


الگوریتم و سورس کد مسئله هشت وزیر ( 8 وزیر )