Exemplo n.º 1
0
    def ready_to_run(self):
        """Initialization done after pygame initializes.

        This happens before the run looop starts.
        """
        card_sprite.load_spritesheet()

        self.deck = deck.Deck()
        self.deck.shuffle()
        self.deck_location = (150, 150)

        self.discard_pile = deck.Deck(initial_cards=[])
        self.discard_pile_location = (300, 150)

        self.flash = flash.FlashMessage(
            message="Draw some cards!\nPress 'n' to reset.",
            duration=3000,
            fade_duration=2000)
        self.flash.show()
        self.flash_location = (100, 50)

        deck_rect = self.deck.drawing_rect()
        self.deck_bounding_rect = deck_rect.move(self.deck_location)
        self.discard_pile_bounding_rect = deck_rect.move(
            self.discard_pile_location)
Exemplo n.º 2
0
 def testPeekDoesNotRemoveCardFromDeck(self):
     cards = [card.Card(ck.ACE, suit, ck.FACE_DOWN) for suit in ck.SUITS]
     d = deck.Deck(cards)
     c = d.peek()
     self.assertEqual(len(cards), len(d))
     c2 = d.deal()
     self.assertEqual(c, c2)
Exemplo n.º 3
0
 def testInitialCardsAreDealtInOrder(self):
     cards = [card.Card(ck.ACE, suit) for suit in ck.SUITS]
     d = deck.Deck(cards)
     self.assertEqual(cards[0], d.deal())
     self.assertEqual(cards[1], d.deal())
     self.assertEqual(cards[2], d.deal())
     self.assertEqual(cards[3], d.deal())
Exemplo n.º 4
0
 def testResetUnshufflesDeck(self):
     random.seed("foo")
     cards = [card.Card(ck.ACE, suit) for suit in ck.SUITS]
     d = deck.Deck(cards)
     d.shuffle()
     d.reset()
     dealt_cards = d.deal_several(4)
     self.assertEqual(cards, dealt_cards)
Exemplo n.º 5
0
 def testResetSetsDeckToOriginalCards(self):
     cards = [card.Card(ck.ACE, suit) for suit in ck.SUITS]
     d = deck.Deck(cards)
     d.deal_several(len(cards))
     self.assertEqual(0, len(d))
     d.reset()
     self.assertEqual(len(cards), len(d))
     dealt_cards = d.deal_several(4)
     self.assertEqual(cards, dealt_cards)
Exemplo n.º 6
0
 def testAddAddsCardToTopOfDeck(self):
     cards = [card.Card(ck.ACE, suit) for suit in ck.SUITS]
     d = deck.Deck(cards)
     new_card = card.Card(ck.TWO, ck.CLUBS)
     d.add(new_card)
     c = d.deal()
     self.assertEqual(new_card, c)
     c = d.deal()
     self.assertEqual(cards[0], c)
Exemplo n.º 7
0
 def testAddToBottomAddsCardToBottomOfDeck(self):
     cards = [card.Card(ck.ACE, suit) for suit in ck.SUITS]
     d = deck.Deck(cards)
     new_card = card.Card(ck.TWO, ck.CLUBS)
     d.add(new_card, to_bottom=True)
     dealt_cards = d.deal_several(len(cards))
     self.assertEqual(cards, dealt_cards)
     c = d.deal()
     self.assertEqual(new_card, c)
Exemplo n.º 8
0
 def testDealWithFaceSetsFace(self):
     d = deck.Deck([
         card.Card(ck.ACE, ck.SPADES, ck.FACE_DOWN),
         card.Card(ck.ACE, ck.SPADES, ck.FACE_UP)
     ])
     c = d.deal(face=ck.FACE_UP)
     self.assertEqual(ck.FACE_UP, c.face)
     c = d.deal(face=ck.FACE_DOWN)
     self.assertEqual(ck.FACE_DOWN, c.face)
Exemplo n.º 9
0
 def testShuffle(self):
     # Hardcode the seed for this test.
     random.seed("foo")
     cards = [card.Card(ck.ACE, suit) for suit in ck.SUITS]
     d = deck.Deck(cards)
     d.shuffle()
     dealt_cards = d.deal_several(len(cards))
     # This was determined by capturing the results using the given seed.
     expected_shuffle = [cards[0], cards[3], cards[1], cards[2]]
     self.assertEqual(expected_shuffle, dealt_cards)
Exemplo n.º 10
0
 def testPeekFailsIfDeckIsEmpty(self):
     d = deck.Deck([])
     with self.assertRaises(deck.DeckError):
         d.peek()
Exemplo n.º 11
0
 def testDefaultDeckHas52Cards(self):
     d = deck.Deck()
     self.assertEqual(52, len(d))
Exemplo n.º 12
0
 def testCanCreateDeckWithCustomCardSet(self):
     cards = [card.Card(ck.ACE, suit) for suit in ck.SUITS]
     d = deck.Deck(cards)
     self.assertEqual(4, len(d))
Exemplo n.º 13
0
 def testPeekShowsTopCard(self):
     cards = [card.Card(ck.ACE, suit, ck.FACE_DOWN) for suit in ck.SUITS]
     d = deck.Deck(cards)
     c = d.peek()
     self.assertEqual(cards[0], c)
Exemplo n.º 14
0
 def testDealSeveralWithFaceSetsFace(self):
     cards = [card.Card(ck.ACE, suit, ck.FACE_DOWN) for suit in ck.SUITS]
     d = deck.Deck(cards)
     dealt_cards = d.deal_several(2, ck.FACE_UP)
     for c in dealt_cards:
         self.assertEqual(ck.FACE_UP, c.face)
Exemplo n.º 15
0
 def testDealSeveralRemovesCardsFromDeck(self):
     d = deck.Deck()
     d.deal_several(7)
     self.assertEqual(45, len(d))
Exemplo n.º 16
0
 def testDealRemovesCardFromDeck(self):
     d = deck.Deck()
     d.deal()
     self.assertEqual(51, len(d))
Exemplo n.º 17
0
 def testDealSeveralDealsInOrder(self):
     cards = [card.Card(ck.ACE, suit) for suit in ck.SUITS]
     d = deck.Deck(cards)
     dealt_cards = d.deal_several(len(cards))
     self.assertEqual(cards, dealt_cards)
Exemplo n.º 18
0
 def testDealFailsIfDeckIsEmpty(self):
     d = deck.Deck([])
     with self.assertRaises(deck.DeckError):
         d.deal()
Exemplo n.º 19
0
 def testDeckIsEmpty(self):
     d = deck.Deck([])
     self.assertTrue(d.is_empty())
     d = deck.Deck()
     self.assertFalse(d.is_empty())