# Card Module
# Basic classes for a game with playing cards
class Card():
"""A playing card"""
RANKS = ["A","2","3","4","5","6","7",
"8","9","10","J","Q","K"] # 牌面數字1-13
SUITS = ["梅花","方片","紅心","黑桃"]app
def __init__(self,rank,suit,face_up = True):
self.rank = rank # 牌面數字1~13
self.suit = suit # 花色
self.is_face_up = face_up # 是否顯示牌的正面,True爲正面,False爲反面dom
def __str__(self): # printf
if self.is_face_up:
rep = self.suit + self.rank # +" " + str(self.pic_order())
else:
rep = "XX"
return repui
def flip(self): # 翻牌方法
self.is_face_up = not self.is_face_upblog
def pic_order(self): # 牌的順序號
if self.rank == 'A':
FaceNum = 1
elif self.rank == 'J':
FaceNum = 11
elif self.rank == 'Q':
FaceNum = 12
elif self.rank == 'K':
FaceNum = 13
else:
FaceNum = int(self.rank)
if self.suit == '梅花':
Suit = 1
elif self.suit == '方片':
Suit = 2
elif self.suit == '紅桃':
Suit = 3
else:
Suit = 4
return (Suit - 1) * 13 + FaceNumip
class Hand( ):
"""A hand of playing"""rem
def __init__(self):
self.cards = []input
def __str__(self): # 重寫print()方法
if self.cards:
rep = ""
for card in self.cards:
rep += str(card) + "\t"
else:
rep = "無牌"
return repit
def clear(self): # 清空手裏的牌
self.cards = []class
def add(self, card):
self.cards.append(card)import
def give(self, card, other_hand): # 把一張牌給其餘選手
self.cards.remove(card)
other_hand.add(card)
class Poke(Hand):
"""A deck of playing cards"""
def populate(self):
for suit in Card.SUITS:
for rank in Card.RANKS:
self.add(Card(rank , suit))
def shuffle(self): # 洗牌
import random
random.shuffle(self.cards) # 打亂牌的順序
def deal(self,hands,per_hand = 13): # 發牌,發給玩家,每人默認13張牌
for rounds in range(per_hand):
for hand in hands:
top_card = self.cards[0]
self.cards.remove(top_card)
hand.add(top_card)
if __name__== "__main__":
print('This is a module with classes for playing cards.')
# 四個玩家
players=[Hand(),Hand(),Hand(),Hand()]
poke1=Poke()
poke1.populate() # 生成一副牌
poke1.shuffle() # 洗牌
poke1.deal(players,13) # 發給玩家每人13張牌
# 顯示4位牌手的牌
n=1
for hand in players:
print('牌手' , n ,end=':')
print(hand)
n = n+1
input('\nPress the enter key to exit.')
=========================================================================
運行結果截圖: