扑克牌游戏

# 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.")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值