کلاس Old Maid Hand چیست ؟

0

کلاس Old Maid Hand چیست ؟

یک دست کارت براي بازي OldaMaid علاوه بر قابلیـتهـاي عمـومی یـک Hand ،نیـاز بـه تواناییهاي دیگري هم دارد. ما کلاس جدیـدي بـه نـام OldMaidHand را تعریـف مـیکنـیم کـه از Hand ارثبري دارند و یک متد اضافه به نام removeMatches را ارائه میدهد:

class OldMaidHand(Hand):
def removeMatches(self):
count = 0
originalCards = self.cards[:]
for card in originalCards:
match = Card(3 – card.suit, card.rank)
if match in self.cards:
self.cards.remove(card)
self.cards.remove(match)
print “Hand %s: %s matches %s” % (self.name,card,match)
count = count + 1
return count

کار را با ساختن یک کپی از کارتها شروع میکنیم، بهطوريکه میتوانیم در حالی که کارتهـا را از لیست اصلی حذف میکنیم، کپی را پیمایش نماییم. از آنجا کـه cards.self در حلقـه تغییـر یافته است، نمیخواهیم از آن براي کنترل پیمایش استفاده کنیم. پایتون ممکن است کاملاً گیج شـود، اگر لیستی را پیمایش نماید که در حال تغییر است. براي هر کارت موجود در دست، مشخص میکنیم چه کارتی با آن جفت میشود و به دنبال آن میگردیم. کارت همتا (جفت شده) داراي رتبهاي برابر و خالی دیگر از همان رنگ است. عبارت suit.crad-3 ،یک Club) خال 0 (را به یک Spade) خال 1 (را به یک Heart (خال 2 (تبدیل میکند. شما باید خود را متقاعد کنید که عملگرهاي متضاد نیز کار میکنند. اگر کارت همتا هم در دست باشد هر دو حذف میشوند. مثال زیر چگونگی استفاده از removeMatches را نمایش میدهد:

>> game = CardGame()
>>> hand = OldMaidHand(“frank”)
>>> game.deck.deal([hand], 13)
>>> print hand
Hand frank contains
Ace of Spades
2 of Diamonds
7 of Spades
8 of Clubs

6 of Hearts
8 of Spades
7 of Clubs
Queen of Clubs
7 of Diamonds
5 of Clubs
Jack of Diamonds
10 of Diamonds
10 of Hearts

>>> hand.removeMatches()
Hand frank: 7 of Spades matches 7 of Clubs
Hand frank: 8 of Spades matches 8 of Clubs
Hand frank: 10 of Diamonds matches 10 of Hearts
>>> print hand
Hand frank contains
Ace of Spades
2 of Diamonds
6 of Hearts
Queen of Clubs
7 of Diamonds
5 of Clubs
Jack of Diamonds

دقت کنید در کلاس OldMaidHand متد __init __وجود نـدارد. مـا از Hand ارثبـري
داریم.

برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید

بستر اموزش های ویدویی 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 15, 2020
گذاشتن نظر
شما در حال مشاهده 1 از 1 پاسخ هستید ، برای دیدن همه پاسخها اینجا را کلیک کنید .
پاسخ خود را بنویسید .
  • فعال
  • بازدیدها1208 times
  • پاسخ ها1 پاسخ
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

علامت ذره بین Tutorials سمت راست به رنگ قرمز به شما کمک خواهد کرد .

جدید ترین سوالات پرسیده شده

منقضی شدن سم بتانال 1 پاسخ | 0 آرا
ایا ایدز گزفتم؟ 0 پاسخ ها | 0 آرا
انتخاب ورزش رزمی 0 پاسخ ها | 1 رای
وزارت تعاون کار و رفاه اجتماعی اسناد و املاک کشور مرکز آموزش ویدیویی انجمن پرسش و پاسخ فروشگاه ملی تولید کنندگان مدیریت بر مدیران حم رسانه ملی اخبار متا دانشگاه متاورس استخدام | دانش محور فروشگاه مجازی حم تبلیغات ملی بازار NFT متاورس رنگ نقشه ملی سه بعدی متا تونل زمان متاآرت وبرنگ خانه