- Tkinter GUI Programming by Example
- David Love
- 274字
- 2021-08-27 18:49:10
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.
- DB2 V9權威指南
- 微服務設計(第2版)
- Visual C++程序設計教程
- Mastering Articulate Storyline
- 實用防銹油配方與制備200例
- Python高級機器學習
- Instant QlikView 11 Application Development
- 人人都是網站分析師:從分析師的視角理解網站和解讀數據
- AutoCAD VBA參數化繪圖程序開發與實戰編碼
- Webpack實戰:入門、進階與調優
- Procedural Content Generation for C++ Game Development
- R語言:邁向大數據之路(加強版)
- Python趣味編程與精彩實例
- Node.js實戰:分布式系統中的后端服務開發
- Python計算機視覺與深度學習實戰