Python基础《扑克牌游戏》

#Cards Module

#1.Card类
class Card():
    RANKS=[A,2,3,4,5.6,7,8,9,10,J,Q,K]
    SUITS=[梅,方,红,黑]
    def __init__(self,sank,suit,face_up=True):
        self.rank=rank
        self.suit=suit
        self.is_face_up=face_up
    def __str__(self):
        if self.is_face_up:
            rep=self.suit+self.rank
        else:
            rep=xx
        return rep
    def flip(self):
        self.is_face_up=not self.us_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 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+FaceNum

#2.Hand类
class Hand():
    def __init__(self):
        self.cards=[]
    def __str__(self):
        if self.cards:
            rep= 
            for card in self.cards:
                rep=rep+str(card)+   
        else:
            rep=无牌
            return rep
    def clear(self):
        self.cards=[]
    def add(self,card):
        self.cards.append(card)
    def give(self,card,other_hand):
        self.cards.remove(card)
        other_hand.add(card)

#3.Poke类
class Poke(Hand):
    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_han=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)
                else:
                    print("Cant continue deal. Out of cards!")

#主程序
经验分享 程序员 微信小程序 职场和发展