project.pdf

‫دانشگاه صنعتی شریف‬
‫دانشکده مهندسی کامپیوتر‬
‫مبانی برنامهسازی ‪C‬‬
‫عنوان پروژه‪ :‬بازی شطرنج‬
‫استاد درس‪ :‬دکتر ریواده‬
‫نیمسال دوم سال تحصیلی ‪۴۹-۴۹‬‬
‫شرح پروژه‬
‫در این پروژه قصدد داریم اای شررن را طی سه فای پیادهسای کنیم‪ .‬در این اای دو ااییکن اه نوات مهرهها را رو یک صفحه شررن‬
‫‪ 8‬در ‪ 8‬طبق قوانین حرکدت ارا هر مهره حرکدت میدهند‪ .‬همانطور که میدانید در اای شدددررن ‪ 6‬مهره داریم که هر کدام اه روش‬
‫خاص خود حرکت کرده و یا مهره حریف را میینند‪ .‬چنانچه اا این اای آشدددنا نیددددتید در یینک ییر میتوانید در مورد قوانین آن مرایعه‬
‫افرمایید (‪)http://mahshar.com/learning/chess05.htm‬‬
‫صفحه اای اه صورت متنی اوده و مانند شکل ییر است‪:‬‬
‫مهرهها اای و نمادها حرفی مورد استفاده ارا هر کدام اه قرار ییر هدتند‪:‬‬
‫‪‬‬
‫رخ یا قلعه اا نماد ‪C‬‬
‫‪‬‬
‫اسب اا نماد ‪H‬‬
‫‪‬‬
‫فیل اا نماد ‪E‬‬
‫‪‬‬
‫وییر اا نماد ‪Q‬‬
‫‪‬‬
‫شاه اا نماد ‪K‬‬
‫‪‬‬
‫پیاده یا سراای اا نماد ‪S‬‬
‫در شدرو اای اایددتی ددول فو در کنددول نمایش داده شدود‪ .‬ارا ساختن این ددول ‪ 8‬در ‪ 8‬اایدتی تنها ای کاراکترها "‪ "|" ،"-‬و‬
‫نمادها تعریف شده فو استفاده کنید‪.‬‬
‫مهرهها پایین مراوط اه ااییکن اول و مهرهها ااال مراوط اه ااییکن دوم میااشددند‪ .‬اه منرور مدم اشددتباه در مهرهها همانطور که در‬
‫شکل مشاهده میکنید مهرهها ااییکن پایین اا حروف کوچک و مهرهها ااییکن ااال اا حروف ازرگ نشان داده شدهاند‪.‬‬
‫‪1‬‬
‫اه منرور یکی شدن مختصاتها اه کار گرفته شده در ارنامهها‪ ،‬خانه گوشه سمت چپ ااال را (‪ )0،0‬و خانه گوشه سمت راست پایین‬
‫را (‪ )7،7‬در نرر می گیریم‪( .‬مدد سمت چپ یوج مرتبها نشانگر سرر و مدد سمت راست نشانگر ستون است)‬
‫پس ای شرو اای هر ااییکن ااتدا یک خانه ای ددول که مهره مراوط اه خودش در آن هدت را انتخاب میکند‪ .‬سپس ارنامه ما خانهها‬
‫مجای ارا حرکت آن مهره را اه صورت یک ییدت ای مختصاتها نمایش میدهد و ااییکن یکی ای آنها را اه منوان مقصد انتخاب کرده و‬
‫مهره مورد نرر اه آن خانه منتقل میشود‪.‬‬
‫اه منوان مثال در شکل ااال چنانچه ااییکن پایین (ااییکن شماره ‪ )1‬خانه (‪ )7،7‬را انتخاب کند ارنامه اه او امالم میکند که هیچ حرکتی‬
‫ارا انجام در اختیار ندارد‪ .‬و چنانچه خانه (‪ )7،6‬را انتخاب کند ارنامه خانهها (‪ )۹،7‬و (‪ )۹،۹‬را ارا انتخاب اه او نشان میدهد و او یک‬
‫خانه را انتخاب میکند‪( .‬در صورتی که خانها اه دز خانهها مجای را وارد کند اایدتی اا پیغام مناسبی اه ااییکن امالم شود‪).‬‬
‫وضدعیت رخ دادن کیش اعد ای هر حرکت اایددتی اررسدی شدود و چنانچه حرکت مهره اامث کیش شددن شاه خود میشود آن حرکت‬
‫اایدتی یغو گردد‪ .‬همچنین چنانچه شاه یک ااییکن توسط مهرهها ااییکن دیگر کیش شده ااشد حرکت اعد ااییکن اایدتی در راستا‬
‫رفع وضعیت کیش ااشد و سایر حرکات مجای نمیااشد‪.‬‬
‫اه منرور تددهیل در انجام پروژه ممکن است ارخی ای قوانین اای را حفف کنیم که متعاقبا اه اطال شما خواهد رسید‪ .‬دزئیات ایشتر در‬
‫آینده در طی فایها اعد در اختیار شما قرار داده خواهد شد‪.‬‬
‫اهداف پروژه‬
‫انترار میرود که اا انجام این پروژه‪ ،‬دانشجویان مهارتها ییر را فراگرفته ااشند‪:‬‬
‫‪‬‬
‫آشنایی اا نحوه اه کارگیر حلقهها‪ ،‬آرایهها و ‪. ...‬‬
‫‪‬‬
‫پیادهسای منرق و واسط نمایشگر صفحه اای اه صورت دداگانه‪.‬‬
‫آشنایی و پیادهسای توااع مورد نیای‪.‬‬
‫‪‬‬
‫نیازمندیهای کلی پروژه‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫نوشتن تااعی ارا نمایش صفحه اای اه صورت متنی‪( .‬فای اول)‬
‫نوشدتن توااع مناسب ار هر نو مهره که اا گرفتن مختصات (ستون ‪ ،‬سرر) فعلی رو صفحه‪ ،‬خانهها مجای ارا حرکت آن‬
‫را اه صورت ییدتی ای مختصاتها نمایش دهد‪( .‬فای دوم)‬
‫یک تااع کلی ارا چک کردن وضعیت کیش که اعد ای هر حرکت اایدتی فراخوانی گردد‪( .‬فای دوم)‬
‫‪‬‬
‫یکپارچه کردن ارنامه و اسدتفاده ای توااع و پیادهسدای اخشها اصلی مثل در نرر گرفتن نوات ااییکنان و امکان انجام اای ‪.‬‬
‫(فای سوم)‬
‫‪‬‬
‫پیادهسای سایر قوانین اای (مثل ترفیع سراای و قلعه رفتن) و امکان ذخیره اای رو فایل و امکان ادامه اای ای رو آن (فای‬
‫سوم‪ ،‬که ارخی ای این موارد ممکن است اه منوان نمره اضافه مد نرر قرار داده شوند‪).‬‬
‫خواستههای فاز اول‬
‫‪‬‬
‫تعریف و استفاده ای یک آرایه دو اعد ارا ذخیره حایت صفحه اای و مقداردهی اوییه اه آن‪.‬‬
‫‪‬‬
‫پیاده سای تااع نمایشگر صفحه شررن که یک آرایه دو اعد را گرفته و خرودی را اه صورت یک ددول مشااه شکل فو اه‬
‫نمایش میگفارد‪.‬‬
‫تااعی که نوشددتید را اه کار ابرید و آرایه سدداخته شددده که در ار دارنده حایت اوییه اسددت را اه منوان پارامتر اه آن داده و آن را‬
‫‪‬‬
‫فراخوانی کنید‪.‬‬
‫‪2‬‬
‫‪‬‬
‫تمیز کد‪ ،‬تفکیک مناسب و رمایت اصول اوییه تویید کد خوانا حائز اهمیت و نمره است‪.‬‬
‫نکات مهم‬
‫‪‬‬
‫یرفا در صدددورت داشدددتن هرگونه سدددهال یا ااهامی در مورد پروژه‪ ،‬اا آدرس ایمیل ‪ [email protected]‬یا‬
‫‪ [email protected]‬تماس اگیرید‪.‬‬
‫‪‬‬
‫یرفا اه تاریخ ارسدال پروژه دقت الیم را داشدته ااشید‪ .‬این تاریخ اه هیچ منوان تمدید نخواهد شد‪ ،‬یفا در روی اارگفار ‪ ،‬صورت‬
‫پروژه را دریافت کرده و مرایعه کنید‪.‬‬
‫‪‬‬
‫شرکت تمامی امضا گروه در یمان تحویل حضور ایزامیدت‪.‬‬
‫تمامی امضا گروه ااید در انجام تمامی اخشها پروژه مشارکت داشته و در یمان تحویل حضور تدلط کامل داشته ااشند‪.‬‬
‫‪‬‬
‫تاریخ دلدات رفع ااهام پروژه ای طریق صفحه رسمی درس امالم خواهد شد‪ .‬شرکت در این دلدات شدیدا توصیه میشود‪.‬‬
‫همکار این گروهی (این دو یا چند گروه) مجای نیدت و اه منزیه تقلب محدوب میشود‪.‬‬
‫‪‬‬
‫هرگونه رونویسی‪ ،‬قتباس‪ ،‬هرر گیری و قسیباسه ق اسر گرو هسی هیرر هه هه ویورج ئی ‪ ،‬و هه ال‪ ،‬مجس نیست و تاعسج‬
‫‪‬‬
‫‪‬‬
‫قنضاسط‪ ،‬هه همرق خوقهد هقشت‪.‬‬
‫‪‬‬
‫استفاده ای توااع‪ ،‬کدها آماده در انجام فایها پروژه مجای نیدت‪ ،‬مگر آنکه در شرح پروژه اه صورت مدتقیم اه مجای اودن آنها‬
‫اشاره شده ااشد‪.‬‬
‫‪3‬‬