HW4.pdf

‫برنامه نویسی پیشرفته‬
‫نیم سال اول ‪۸۵-۸۶‬‬
‫تمرین ‪۴‬‬
‫در این تمرین برنامه ای برای بازی شطرنج می نویسید‪ .‬برای تحویل برنامه کلیه کالسهای نوشته شده را به صورت یک‬
‫فایل ‪ zip‬از طریق یک نامه الکترونیکی با مشخصات زیر ارسال کنید‪:‬‬
‫‪[email protected]‬‬
‫‪Recipient:‬‬
‫‪hw4-82123456‬‬
‫‪Subject:‬‬
‫‪Body:‬‬
‫‪Attachments: 82123456.zip‬‬
‫در فیلد ‪ subject‬نامه‪ ،‬بعد از ‪ hw4-‬شماره دانشجویی خود را بنویسید و از کاراکتر فاصله خالی نیز استفاده نکنید‪ .‬نام‬
‫فایل ‪ zip‬هم باید شماره دانشجویی فرد باشد‪ .‬توجه کنید که بدنه نامه شما لزوم ًا خوانده نمی شود‪ .‬مهلت تحویل‬
‫تمرین‪ ،‬ساعت ‪ ۱۲‬شب جمعه ‪ ۸۵/۱۰/۸‬است‪.‬‬
‫توضیحات‬
‫این برنامه باید حرکات انجام شده در یک بازی شطرنج که در یک فایل به نام ‪ input.txt‬وجود دارد را به ترتیب انجام‬
‫داده و در نهایت وضعیت صفحه شطرنج را پس از انجام حرکات موجود در فایل ‪ input‬در یک اپلت یا فریم نشان دهد‪.‬‬
‫هر خط در این فایل نشان دهنده یک حرکت در بازی است و بنابر قوانین شطرنج‪ ،‬بازی را مهره سفید آغاز می کند‪ .‬به‬
‫این ترتیب خطهای با شماره فرد حرکات مهره های سفید بوده و خطهای با شماره زوج حرکات مهره های سیاه می‬
‫باشند‪.‬‬
‫برای نمایش حرکات ابتدا اسم مهره مورد نظر را ذکر می کنیم )این اسامی در جدول ‪ ۱‬آورده شده اند( و پس از آن محل‬
‫کنونی آن مهره و در انتها نیز محل نهایی آن را معین می کنیم‪ .‬به عنوان مثال ‪ B A5 B6‬به این معنا است که فیل از‬
‫خانه ‪ A5‬به خانه ‪ B6‬برود‪ .‬الزم به ذکر است در بازی شطرنج در ابتدای بازی خانه ‪ A1‬متعلق به رخ سفید می باشد‪.‬‬
‫این برنامه باید حرکات را تا زمانی که خطایی منطقی در آنها موجود نباشد ادامه دهد و وضعیت بازی را پس از انجام‬
‫تمام حرکات در یک فریم یا اپلت نمایش دهد‪ .‬در صورتی که در حرکات گفته شده نیز خطایی موجود باشد با پیغامی‬
‫مناسب خطی که در آن خطا موجود است را مشخص کرده و وضعیت صفحه شطرنج را تا آخرین حرکت بدون خطا‬
‫نمایش دهد‪.‬‬
‫برخی از خطاهای منطقی عبارتند از‪:‬‬
‫بازی با مات شدن یکی از بازیکن ها به پایان برسد ولی با این وجود حرکات موجود در فایل ورودی به پایان نرسیده‬
‫باشند‪.‬‬
‫حرکت معین شده برای یک مهره با قوانین موجود در بازی شطرنج مغایر باشد‪.‬‬
‫در محلی که به عنوان محل اولیه مهره در نظر گرفته شده مهره ای موجود نباشد یا مهره موجود در این محل با مهره ای‬
‫ال در فایل ورودی گفته شده که اسب سفید از خانه ‪ A4‬به ‪ C6‬برود اما در‬
‫که قرار بوده در آن باشد متفاوت باشد ) مث ً‬
‫وضیت کنونی بازی در خانه ‪ A4‬یک سرباز سفید قرار دارد(‪.‬‬
‫عالوه بر خطاهای نام برده شده در باال برنامه شما باید سایر خطاهای ممکن دیگر را نیز تشخیص دهد و برای هر یک‬
‫پیغامی مناسب را پس از نمایش وضعیت کنونی بازی نمایش دهد‪.‬‬
‫همچنین پس از نمایش بازی به صورت گرافیکی در یک اپلت یا فرم کاربر باید قادر باشد با موس بازی را ادامه دهد‪ .‬در‬
‫این شرایط نیز برنامه باید از کلیه حرکات مغایر با قوانین جلوگیری کند و در صورتی که بازی با مات شدن یک طرف به‬
‫پایان رسید دیگر امکان جابه جایی مهره ها را به کاربر ندهد‪.‬‬
‫ﻧﺎم‬
‫ﺣﺮف ﻧﮕﺎرﻩ‬
‫ﺳﺮﺑﺎز‬
‫‪P‬‬
‫اﺳﺐ‬
‫‪N‬‬
‫ﻓﻴﻞ‬
‫‪B‬‬
‫رخ )ﻗﻠﻌﻪ( ‪R‬‬
‫وزﯾﺮ‬
‫‪Q‬‬
‫ﺷﺎﻩ‬
‫‪K‬‬