官术网_书友最值得收藏!

The Deck class

The Deck will need to contain 52 unique cards and must be able to shuffle itself. It will also need to be able to deal cards and decrease in size as cards are removed:

class Deck:
def __init__(self):
self.cards = [Card(s, v) for s in ["Spades", "Clubs", "Hearts",
"Diamonds"] for v in ["A", "2", "3", "4", "5", "6",
"7", "8", "9", "10", "J", "Q", "K"]]

def shuffle(self):
if len(self.cards) > 1:
random.shuffle(self.cards)

def deal(self):
if len(self.cards) > 1:
return self.cards.pop(0)

When creating an instance of the Deck, we simply need to have a collection of every possible card. We achieve this using a list comprehension which contains lists of every suit and value. We pass each combination over to the initialization for our Card class to create 52 unique Card instances.

Our Deck will need to be able to be shuffled, so that every game is different. We use the shuffle function in the random library to do this for us. To avoid any potential errors, we will only shuffle a deck which still has two or more cards in it, since shuffling one or zero cards is pointless.

After shuffling, we will need to deal cards too. We utilize the pop function of a list (which is the data structure holding our cards) to return the top card and remove it from the deck so that it cannot be dealt again.

The final utility concept to be created for our game to work is the concept of a Hand. All players have a hand of cards, and each hand is worth a numerical value based on the cards it contains.

主站蜘蛛池模板: 梁山县| 鄂托克旗| 遂溪县| 萝北县| 阿图什市| 宜宾市| 普定县| 郸城县| 闽清县| 五家渠市| 台北县| 晋宁县| 信丰县| 罗定市| 嘉鱼县| 宣化县| 巨鹿县| 阿坝县| 宁乡县| 绥德县| 绥滨县| 洪雅县| 河西区| 龙游县| 福海县| 宿迁市| 磴口县| 中卫市| 高清| 庆城县| 山阴县| 宜良县| 蓬莱市| 九龙坡区| 白银市| 蓝山县| 钦州市| 中山市| 英山县| 扎兰屯市| 共和县|