یک دست کارت در زبان پایتون چیست ؟
یک دست کارت در زبان پایتون چیست ؟
تقریباً براي هر بازي، به نمایش یک دست کارت نیاز داریم. یک دست کارت شبیه به یک دستۀ ورق است. هر دو از مجموعۀ کارتها تشکیل شدهاند و هر دو بـه اعمـالی نظیـر اضـافه و حـذف کـردن کارتها نیاز دارند، همچنین ممکن است به توانایی بر زدن دستۀ ورقها و هـر دسـت از کـارتهـا نیـاز داشته باشیم. به علاوه یک دست کارت با یک دسته ورق متفاوت است. بسته به نوع بازي که انجـام مـیشـود، ممکن است بخواهید اعمالی روي یک دست کارت انجام دهید که انجام آنهـا بـر روي یـک دسـتۀ ورق معنی نداشته باشد. براي مثال، در بازي Poker ممکن است یک دست کارت را دستهبندي کنیم و یـا آن را با یک دست کارت دیگر مقایسـه کنـیم. در بـازي Bridge ممکـن اسـت بخـواهیم بـه منظـور حکم کردن، امتیازي را براي یک دست کارت محاسبه کنیم. در این حالت میتوانیم از وراثت استفاده کنیم. اگـر Hand زیـرکلاسـی از Deck باشـد، تمـام تدهاي آن را خواهد داشت و میتوان متدهاي جدیدي را هم به آن اضافه کرد. در تعریف کلاس،نام کلاس والد در پرانتز ظاهر میشود:
class Hand(Deck):
pass
این دستور نشان میدهد که کلاس جدید Hand از کلاس Deck موجود ارثبري دارد. سازندة Hand مشخصههایی را براي یک دست کارت مقداردهی اولیه میکند کـه ایـن مقـادیر name و cards هستند. رشتۀ name ،این دست کارت را احتمالاً بـهوسـیلۀ نـام بـازیکن صـاحب آن مشخص میکند. name ،یک پارامتر اختیاري با مقدار پیشفرض تهی است. cards ،لیست کارتهاي درون یک دست است که با لیستی تهی مقداردهی اولیه شده است:
class Hand(Deck):
def __init__(self, name=””):
self.cards = []
self.name = name
تقریباً براي هر کارتبازي، لازم است کارتهایی از یک دسته ورق اضـافه و حـذف کنـیم. حـذف کارتها قبلاً در نظر گرفته شـده، زیـرا Hand ،removeCard را از Deck بـه ارث بـرده اسـت، امـا addCard را باید بنویسیم:
class Hand(Deck):
…
def addCard(self,card):
self.cards.append(card)
باز هم یادآوري میکنیم که علامت (…) نشان میدهد که از نوشتن متدهاي دیگر صرفنظـر کردهایم. متد append کارت جدیدي را به انتهاي لیست کارتها اضافه میکند.
برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید