# Cards Modoule
# Basic classes for a game with playing cards
#1.class Card():
""" A playing card. """
RANKS = ["A", "2", "3", "4", "5", "6", "7",
"8", "9", "10", "J", "Q", "K"] #牌面数字 1—13
SUITS = ["梅","方","红","黑"] #梅花,方片,红桃,黑桃
def __init__(self,rank,suit,face_up = True):
self.rank = rank #指的是牌面数字 1—13
self.suit = suit #suit指的是花色
self.is_face_up = face_up #是否显示牌正面,Ture为正面,False为反面 def __str__(self):
def __str__(self):
if self.is_face_up:
rep = self.suit + self.rank.rank #+" " str(self.pic_order())
else:
rep = "XX"
return rep
def flip(self): #翻牌方法
self.is_face_up = not self.is_face_up
def pic_order(self):
if self.rank=="A":
FaceNum=1
elif self.rank=="J":
FaceNum=11
elif self.rank=="Q":
FaceNum=12
elif sel.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 + FaceNum
#2.class Hand( ):
""" A hand of playing cards. """
def __init__(self):
self.cards = []
def __str__(self): #重写print()方法
if self.cards:
rep = ""
for card in self.cards:
rep += str(card) + "\t"
else:
rep = "无牌"
return rep
def clear(self):
self.cards = []
def add(self, card):
self.cardsappend(card)
def give(self, card, other_hand):
self.cards.remove(card)
other_hand.add(card)
#3.class Poke(Hand):
""" A deck of playing cards. """
def populate(self): #生成一副牌
for suit in Card.SUITS:
for rank in Cards.RANKS:
self.add(Card(rank, suit))
def shuffle(self): #洗牌
import random
random.shuffle(self.cards) #打乱牌序
def deal(self, hands, perr_hand = 13): #发牌给玩家,每人13张
for rounds in range(per_hand):
for hand in hands:
if self.cards:
top_card = self.cards[0]
self.cards.remove(top_card)
hand.add(top_card)
#self.give(top_card, hand)
else:
print("Can't conyinue deak. Out of cards!")
if __name__ == "__main__":
print("This is a module with classes for plaing cards.")
#四个玩家
players = [Hand(),Hand(),Hand(),Hand()]
pokke1 = 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.")
04-20
1001
06-18
2654