Esempio n. 1
0
 def test_sorter(self):
     g = KaiboshGame()
     sorter = g.card_sorter(trump=Suits['Diamonds'], led_suit=Suits['Clubs'])
     jack_of_diamonds = Card(Values['J'], Suits['Diamonds'])
     jack_of_hearts = Card(Values['J'], Suits['Hearts'])
     ace_of_clubs = Card(Values['A'], Suits['Clubs'])
     king_of_clubs = Card(Values['K'], Suits['Clubs'])
     ace_of_hearts = Card(Values['A'], Suits['Hearts'])
     assert sorted([jack_of_hearts,
                    ace_of_clubs], sorter)[0] == jack_of_hearts
     assert sorted([jack_of_hearts,
                    jack_of_diamonds], sorter)[0] == jack_of_diamonds
     assert sorted([ace_of_clubs,
                    ace_of_hearts], sorter)[0] == ace_of_clubs
     assert sorted([ace_of_clubs,
                    king_of_clubs], sorter)[0] == ace_of_clubs
Esempio n. 2
0
 def test_setup(self):
     g = KaiboshGame()
     p1 = Player('Alice', g)
     p2 = Player('Bob', g)
     p3 = Player('Chuck', g)
     p4 = Player(u'댄', g)
     self.players = [p1, p2, p3, p4]
     assert g.state == 'add_player'
     g.add_player(p1, p1)
     g.add_player(p2, p2)
     g.add_player(p3, p3)
     g.add_player(p4, p4)
     assert g.state == 'bid'
     jack_of_hearts = Card(Values['J'], Suits['Hearts'])
     jack_of_diamonds = Card(Values['J'], Suits['Diamonds'])
     queen_of_clubs = Card(Values['Q'], Suits['Clubs'])
     ten_of_spades = Card(Values['10'], Suits['Spades'])
     p1.hand = []
     p2.hand = []
     p3.hand = []
     p4.hand = []
     for _ in xrange(6):
         p1.hand.append(jack_of_hearts)
         p2.hand.append(jack_of_diamonds)
         p3.hand.append(queen_of_clubs)
         p4.hand.append(ten_of_spades)
     self.render_template()
     p1.bid(0)
     p2.bid(1)
     try:
         p3.bid(1)
         assert False, 'Should complain about the bid being too low'
     except:
         assert True
     p3.bid(4)
     p4.bid(0)
     assert g.score == [{'bidder': p3, 'bid': 4, 'trump': None, 'made_it': None, 'scores': ['-', '-']}]
     assert g.high_bid == (p3, 4)
     assert g.state == 'name_trump'
     p3.name_trump(Suits['Hearts'])
     assert g.score == [{'bidder': p3, 'bid': 4, 'trump': Suits['Hearts'], 'made_it': None, 'scores': ['-', '-']}]
     assert g.state == 'play_card'
     assert g.next_player == p1
     p1.play_card(jack_of_hearts)
     self.render_template()
     try:
         p1.play_card(jack_of_hearts)
         assert False, 'Out of turn not raised'
     except OutOfTurn:
         assert True
     p2.hand.append(queen_of_clubs)
     try:
         p2.play_card(queen_of_clubs)
         assert False, 'Must follow suit should raise'
     except MustFollowSuit:
         assert True
     p2.hand.remove(queen_of_clubs)
     p2.play_card(jack_of_diamonds)
     p3.play_card(queen_of_clubs)
     p4.play_card(ten_of_spades)
     assert g.tricks_won[p1] == 1
     assert g.next_player == p1
     for _ in xrange(5):
         p1.play_card(jack_of_hearts)
         p2.play_card(jack_of_diamonds)
         p3.play_card(queen_of_clubs)
         p4.play_card(ten_of_spades)
         self.render_template()
     assert g.state == 'bid'
     assert p1.score == 6
     assert p2.score == 0
     assert p3.score == 6
     assert p4.score == 0
     p1.hand = []
     p2.hand = []
     p3.hand = []
     p4.hand = []
     for _ in xrange(6):
         p1.hand.append(jack_of_hearts)
         p2.hand.append(queen_of_clubs)
         p3.hand.append(jack_of_diamonds)
         p4.hand.append(ten_of_spades)
     p2.bid(3)
     p3.bid(12)
     assert g.state == 'name_trump'
     assert g.next_player == p3
     p3.name_trump(Suits['Diamonds'])
     for _ in xrange(6):
         p3.play_card(jack_of_diamonds)
         p4.play_card(ten_of_spades)
         p2.play_card(queen_of_clubs)
         self.render_template()
     assert g.score[0] == {'bidder' : p3,
                           'bid'    : 12,
                           'trump'  : Suits['Diamonds'],
                           'made_it': True,
                           'scores' : [18, 0]}