بازی با کارت (قسمت سوم)

به دوره آموزش پایتون خوش آمدید. برای رفتن به اولین جلسه این دوره، اینجا کلیک کنید. جلسه قبل درمورد نحوه بر زدن کارت صحبت کردیم. در این بخش میخواهیم کلاس deck را تکمیل کنیم و یک سری متد به آن اضافه کنیم. مواردی که برای این کلاس لازم است عبارت اند از: حذف کارت، برداشتن یک کارت و بررسی خالی بودن یا نبودن یک دسته کارت.

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

class Deck:
    ...
    def removeCard(self, card):
        if card in self.cards:
            self.cards.remove(card)
            return 1
        return 0

در اینجا اگر وارد دستور شرط شود در نهایت مقدار ۱ را return میکند و از تابع خارج میشود و پس از آن امکان ندارد مقدار ۰ برگردانده شود. به همین دلیل از else استفاده نکرد ایم.

به همین راحتی متد حذف کارت پیاده سازی شد، حالا وقت آن است که متد برداشتن یک کارت یا pop را بنویسیم. این دستور آخرین کارت دسته را حذف کرده و آن را بر میگرداند:

class Deck:
    ...
    def popCard(self):
        return self.cards.pop()

برای تست کردن این متد دستورات زیر را اجرا میکنیم:

deck = Deck()
deck.shuffle()
print(len(deck.cards))
# ۵۲
print(deck.popCard())
# ۹ of Hearts
print(deck.popCard())
# Ace of Diamonds
print(len(deck.cards))
# ۵۰

در اینجا ابتدا کارت ها را بر زدیم و بعد دو کارت را از روی آن برداشتیم، len دسته های کارت در ابتدا ۵۲ بود و سپس دو تا از آن کم شد.

در آخر به یک متد نیاز داریم که بررسی کند که دسته خالیست یا خیر پس باید یک مقدار True یا False را برگرداند:

class Deck:
    ...
    def isEmpty(self):
        return (len(self.cards) == 0)

گرچه این توابع ظاهرا ساده اند ولی در ادامه مورد استفاده قرار میگیرند و بسیار کاربردی اند.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *