示例#1
0
 def test_single_straight4(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('23666VW'))
     ret2 = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('0JQKA2'))
     self.assertIsNone(ret)
     self.assertIsNone(ret2)
示例#2
0
    def test_single(self):
        ret = doudizhu.check_value_deal(poker.min3_from_monocolor_visual('J'))
        self.assertTrue(ret)
        self.assertEqual(ret.pattern, 101)
        self.assertEqual(ret.weight, 11)

        ret2 = doudizhu.check_value_deal(poker.min3_from_monocolor_visual('2'),
                                         ret)
        self.assertTrue(ret2)
        self.assertEqual(ret2.pattern, 101)
        self.assertEqual(ret2.weight, poker.MIN3['2'])

        ret3 = doudizhu.check_value_deal(poker.min3_from_monocolor_visual('6'),
                                         ret)
        self.assertIsNone(ret3)

        ret4 = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('88'), ret)
        self.assertIsNone(ret4)

        ret5 = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('JJJJQQQQ'), ret)
        self.assertTrue(ret5)
        self.assertEqual(ret5.pattern, 8)
        self.assertEqual(ret5.weight, poker.MIN3['J'])
示例#3
0
    def test_grand_bomb(self):
        ret = doudizhu.check_value_deal(poker.min3_from_monocolor_visual('VW'))
        self.assertTrue(ret)
        self.assertEqual(ret.pattern, 2)

        ret2 = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('2222'), ret)
        self.assertIsNone(ret2)
示例#4
0
    def test_triple(self):
        ret = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('222'))
        self.assertTrue(ret)
        self.assertEqual(ret.pattern, 303)
        self.assertEqual(ret.weight, poker.MIN3_2)

        ret2 = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('333'), ret)
        self.assertIsNone(ret2)
示例#5
0
    def test_four_two2(self):
        ret = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('55556666QQQ7'))
        self.assertTrue(ret)
        self.assertEqual(ret.pattern, 612)
        self.assertEqual(ret.weight, 5)

        ret2 = doudizhu.check_value_deal(poker.min3_from_monocolor_visual('W'),
                                         ret)
        self.assertIsNone(ret2)
示例#6
0
    def test_triple_single(self):
        ret = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('9666777888KK'))
        self.assertTrue(ret)
        self.assertEqual(ret.pattern, 412)
        self.assertEqual(ret.weight, 6)

        ret2 = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('JJJQQQKKKAAA'), ret)
        self.assertIsNone(ret2)
示例#7
0
    def test_four_two(self):
        ret = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('JJJJVW'))
        self.assertTrue(ret)
        self.assertEqual(ret.pattern, 606)
        self.assertEqual(ret.weight, 11)

        ret1 = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('222200'), ret)
        self.assertTrue(ret1)
        self.assertEqual(ret1.pattern, 606)
        self.assertEqual(ret1.weight, poker.MIN3_2)
示例#8
0
    def test_bombs(self):
        ret = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('AAAA'))
        self.assertTrue(ret)
        self.assertEqual(ret.pattern, 4)
        self.assertEqual(ret.weight, 14)

        ret2 = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('333344445555'), ret)
        self.assertTrue(ret2)
        self.assertEqual(ret2.pattern, 12)
        self.assertEqual(ret2.weight, 3)
示例#9
0
    def test_single_straight(self):
        ret = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('67890JQK'))
        self.assertTrue(ret)
        self.assertEqual(ret.pattern, 108)
        self.assertEqual(ret.weight, 6)

        ret1 = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('7890JQKA'), ret)
        self.assertTrue(ret1)
        self.assertEqual(ret1.pattern, 108)
        self.assertEqual(ret1.weight, 7)

        ret2 = doudizhu.check_value_deal(
            poker.min3_from_monocolor_visual('890JQKA'), ret)
        self.assertIsNone(ret2)
示例#10
0
 def play_card(self, p_index, cards):
     """
     cards 为空表示"不要"
     返回 None 表示无效出牌
     返回 {...} 表示此次出牌的eventContent
     """
     if p_index == self._get_current_turn():
         if cards:
             if poker.check_has_deal(self.playerHand[p_index], cards):
                 ret = doudizhu.check_value_deal(
                     poker.remove_min3_color(cards), self.__pre_cd())
                 if ret:
                     poker.remove_deal(self.playerHand[p_index], cards)
                     self._deadwood += cards
                     self.__add_playing_track(p_index, cards, ret)
                     return self.playingTrack[-1].copy()
         else:
             if self.__pre_cd():  # 起始出牌时不出是不允许的!即只有在之前有效时才能"不出"
                 self.__add_playing_track(p_index, cards,
                                          doudizhu.CardDescription())
                 return self.playingTrack[-1].copy()
示例#11
0
 def test_pair(self):
     ret = doudizhu.check_value_deal(poker.min3_from_monocolor_visual('KK'))
     self.assertTrue(ret)
     self.assertEqual(ret.pattern, 202)
     self.assertEqual(ret.weight, 13)
示例#12
0
 def test_pair2(self):
     ret = doudizhu.check_value_deal(poker.min3_from_monocolor_visual('2V'))
     self.assertIsNone(ret)
示例#13
0
 def test_triple_pair(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('AA33344422'))
     self.assertTrue(ret)
     self.assertEqual(ret.pattern, 510)
     self.assertEqual(ret.weight, 3)
示例#14
0
 def test_single_straight3(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('3456'))
     self.assertIsNone(ret)
示例#15
0
 def test_single_straight2(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('34567890JQKA'))
     self.assertTrue(ret)
     self.assertEqual(ret.pattern, 112)
     self.assertEqual(ret.weight, 3)
示例#16
0
 def test_four_two3(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('W66622'))
     self.assertIsNone(ret)
示例#17
0
 def test_pair_straight(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('9900JJ'))
     self.assertTrue(ret)
     self.assertEqual(ret.pattern, 206)
     self.assertEqual(ret.weight, 9)
示例#18
0
 def test_pair_straight2(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('9900JJ55667788QQKKAA'))
     self.assertTrue(ret)
     self.assertEqual(ret.pattern, 220)
     self.assertEqual(ret.weight, 5)
示例#19
0
 def test_bombs2(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('77778888'))
     self.assertTrue(ret)
     self.assertEqual(ret.pattern, 8)
     self.assertEqual(ret.weight, 7)
示例#20
0
 def test_pair_straight3(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('KKAA22'))
     self.assertIsNone(ret)
示例#21
0
 def test_bombs3(self):
     ret = doudizhu.check_value_deal(
         poker.min3_from_monocolor_visual('AAAA2222'))
     self.assertIsNone(ret)