از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
دو سال پیش منتشر شده
تعداد بازدید: 295
کد پروژه: 253359
شرح پروژه
سلام
جزئیات🔗
این بازی در جدولی که از هر طرف نامتناهیست انجام میشود. مهرهها به دو رنگ سفید و سیاه تقسیم شدهاند و برای هر رنگ یک مهرهی شاه و به تعداد نامتنهای مهرهی سرباز که میتوانند در صفحه حضور داشته باشند و میتوانند هم حضور نداشته باشند داریم.
در ابتدای بازی مهره شاه سفید در خانه (-10 , -10)(−10,−10) و شاه سیاه در خانه (10 , 10)(10,10) قرار دارد. و سربازی درون بازی وجود ندارد.
نحوهی پیروزی در این بازی به وسیلهی مات کردن حریف انجام میشود. مات کردن به این معنیست که حداقل یکی از مهرههای ما(به جز مهرهی شاه) در یکی از خانههای همسایهی راسی(هشت خانهی دور خانهی مورد نظر) خانهی شاه حریف باشد.
برای پیادهسازی باید از دو کلاس Piece و Board استفاده کنید که جزئیات آن را مشاهده میکنید:
کلاس Piece
هر عضو این کلاس دارای سه ویژگی (Attribute) است که در تابع ــinitــ مقداردهی اولیه میشود و به ازای هر شی مقدار آن فرق دارد:
۱. sort: که نشان دهندهی نوع مهرهی مورد نظر میباشد. این مقدار یا "K" به معنای شاه و یا "P" به معنای سرباز است.
۲. color: که نشان دهندهی رنگ مهرهی مورد نظر میباشد. این مقدار یا "black" به معنای رنگ سیاه و یا "white" به معنای رنگ سفید است.
۳. position: که نشان دهندهی جایگاه مهرهی مورد نظر در صفحه میباشد به طور مثال این ویژگی برای مهرهی شاه سفید رنگ (-10 , -10)(−10,−10) میباشد. نوع این متغیر tuple است.
کلاس Board
هر عضو این کلاس دارای یک ویژگی (Attribute) است که در تابع ــinitــ مقداردهی اولیه میشود و به ازای هر شی مقدار آن فرق دارد:
position: که به صورت یک دیکشنری میباشد که قسمت Key در این دیکشنری به تمامی position های اشغال شده در صفحه تعلق دارد و قسمت Value برای هر position یک عنصر از کلاس Piece میباشد که در آن position جای گرفته است. توجه کنید که شما باید در تابع _init_ این کلاس شاه سفید و سیاه را با شرایطی که در بالا گفته شد به دیکشنری اضافه کنید.
این کلاس دارای چهار متد زیر میباشد:
۱. add: این متد به عنوان ورودی یک عنصر از کلاس Piece را میگیرد و آن را به صفحه اضافه میکند. توجه کنید که تنها باید یک شاه از هر رنگ در صفحه وجود داشته باشد و در Position مهرهای که به صفحه اضافه میکنیم نباید مهرهای وجود داشته باشد. اگر ورودی این متد در تناقض با این توضیحات بود متد باید عبارت "invalid query" را چاپ کند.
۲. remove: این متد به عنوان ورودی یک position دریافت میکند و اگر در آن position مهرهای وجود داشت آن مهره را از صفحه پاک میکند. توجه کنید که حتما از هر رنگ دقیقا یک شاه باید درون صفحهی بازی قرار داشته باشد. اگر ورودی این متد در تناقض با این توضیحات بود و یا در position ورودی مهرهای وجود نداشت متد باید عبارت "invalid query" را چاپ کند.
۳. move: این متد به عنوان ورودی یک شی از نوع Piece و یک Position که نشاندهنده جایگاه جدیدی است که این مهره در آن باید قرار بگیرد، دریافت میکند. در صورتی که در جایگاه فعلی این مهره در صفحه، همین مهره وجود داشته باشد و جایگاه جدید نیز خالی از مهره باشد، این مهره را به آن جایگاه منتقل میکنیم. اگر در جایگاه فعلی این مهره در صفحه همین مهره وجود داشته باشد و جایگاه جدید یکی از مهرههای سرباز حریف باشد، این مهره به آن جایگاه انتقال مییابد و مهرهی حریف از صفحه حذف میشود(چون حتما باید در هر لحظه از هر رنگ دقیقا یک مهره شاه وجود داشته باشد پس نمیتواند شاه حریف را مورد حمله قرار دهد). در غیر این صورت و یا اگر ورودی این متد در تناقض با این توضیحات بود متد باید عبارت "invalid query" را چاپ کند.
۴. is_mate: این متد به عنوان ورودی یک رنگ ( "white" و یا "black") را دریافت میکند و بررسی میکند که آیا مهرههای رنگ مورد نظر در وضعیت مات قرار دارد یا خیر. اگر قرار دارد مقدار True و اگر خیر مقدار False را برگرداند
مهارت ها و تخصص های مورد نیاز
بودجه
100,000 تومان تا 300,000 تومان
مهلت برای انجام
3روز
وضعیت مناقصه
انجام شده
درباره کارفرما
عضویت هفت سال پیش
قادر به انجام این پروژه هستید؟
مهلت ارسال پیشنهاد قیمت برای این پروژه تمام شده است
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار