2023年2月1日 星期三

python for pypoker 普克遊戲設計 範例1

 


class Card():

    def __init__(self, suit, rank):

        self.suit = suit

        self.rank = rank

    

    def __repr__(self):

        return f"{self.rank} of {self.suit}"


class Deck():

    def __init__(self):

        suits = ["Hearts", "Diamonds", "Spades", "Clubs"]

        ranks = ["Ace", "2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King"]

        self.cards = [Card(suit, rank) for suit in suits for rank in ranks]

    

    def __repr__(self):

        return f"Deck of {self.count()} cards"

    

    def count(self):

        return len(self.cards)

    

    def _deal(self, count):

        count = min(count, self.count())

        return [self.cards.pop() for _ in range(count)]

    

    def deal_card(self):

        return self._deal(1)[0]

    

    def deal_hand(self, hand_size):

        return self._deal(hand_size)

    

    def shuffle(self):

        if self.count() < 52:

            raise ValueError("Only full decks can be shuffled")

        

        #self.shuffle(self.cards)

        return self


def main():

    deck = Deck()

    deck.shuffle()


    hand = deck.deal_hand(5)

    print(hand)

    hand = deck.deal_hand(5)

    print(hand)



if __name__ == '__main__':

    main()

沒有留言:

張貼留言

dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt Docker 映像介紹

 dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt Docker 映像介紹 1. 基本概述 名稱: dorowu/ubuntu-desktop-lxde-vnc:bionic-lxqt 維護者: Dorowu 用途: 提供基於 Ub...