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

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.

主站蜘蛛池模板: 镇江市| 河津市| 郧西县| 泉州市| 秦安县| 监利县| 崇礼县| 金阳县| 托克托县| 鹤壁市| 荔波县| 藁城市| 青州市| 方城县| 大埔县| 钟祥市| 乌拉特后旗| 洛南县| 鄂托克旗| 锡林浩特市| 林口县| 霍邱县| 合肥市| 瓦房店市| 望都县| 合作市| 资中县| 庆元县| 绥江县| 江川县| 获嘉县| 犍为县| 丰台区| 琼海市| 崇明县| 秦安县| 陈巴尔虎旗| 林芝县| 慈利县| 文水县| 扶绥县|