deck

A deck of playing cards.

source

Deck

 Deck ()

A deck of 52 cards, not including jokers

When we initially create a deck, all the cards will be present:

deck = Deck()
deck
A♣️; 2♣️; 3♣️; 4♣️; 5♣️; 6♣️; 7♣️; 8♣️; 9♣️; 10♣️; J♣️; Q♣️; K♣️; A♦️; 2♦️; 3♦️; 4♦️; 5♦️; 6♦️; 7♦️; 8♦️; 9♦️; 10♦️; J♦️; Q♦️; K♦️; A♥️; 2♥️; 3♥️; 4♥️; 5♥️; 6♥️; 7♥️; 8♥️; 9♥️; 10♥️; J♥️; Q♥️; K♥️; A♠️; 2♠️; 3♠️; 4♠️; 5♠️; 6♠️; 7♠️; 8♠️; 9♠️; 10♠️; J♠️; Q♠️; K♠️

That should be 52 cards.

test_eq(len(deck), 52)

As a reminder, these are the suits we defined for a Card:

suits
['♣️', '♦️', '♥️', '♠️']

We can check if, say, the Ace of Diamond is in the deck:

Card(1, 1) in deck
True

source

Deck.pop

 Deck.pop (idx:int=-1)

Remove one card from the deck

Type Default Details
idx int -1 The index of the card to remove, defaulting to the last one
deck = Deck()
test_eq(deck.pop(), Card(3, 13))  # K♠️

There are 51 cards left in the deck now.

test_eq(len(deck), 51)

source

Deck.remove

 Deck.remove (card:nbdev_cards.card.Card)

Removes card from the deck or raises exception if it is not there

Type Details
card Card Card to remove
card23 = Card(2, 3)
deck.remove(card23)
assert card23 not in deck

source

Deck.shuffle

 Deck.shuffle ()

Shuffles the cards in this deck.


source

draw_n

 draw_n (n, replace:bool=True)

Draw ‘n’ cards, with replacement if ‘replace’

Type Default Details
n number of cards to draw
replace bool True whether or not draw with replacement
draw_n(13, replace=False)
[Q♦️, Q♣️, 3♦️, K♥️, 6♥️, 2♠️, 8♦️, 2♥️, A♦️, 6♠️, A♥️, K♠️, 10♣️]