예제 #1
0
파일: fullhouse.py 프로젝트: gidoca/tichu
    def find(self, cards, higher=True):
        pairRec = TMultiFinder(2, True)
        tripleRec = TMultiFinder(3, True)
        pairs,a = pairRec.recognize(cards)
        triples,b = tripleRec.recognize(cards)

        lipairs = list(pairs.values())
        ltriples = list(triples.values())
        li = list(flatten(lipairs+ltriples))
        try:
            fh = TFullHouse(li)
            return [fh]
        except:
            return []
예제 #2
0
파일: fullhouse.py 프로젝트: gidoca/tichu
    def __find_fullhouse__(cards: Set[Card]):
        pairRec = TMultiFinder(2, True)
        tripleRec = TMultiFinder(3, True)
        pairs,a = pairRec.recognize(cards)
        triples,b = tripleRec.recognize(cards)
        num_pairs = len(pairs)
        num_triples = len(triples)

        if (num_triples > 0):
            diff = num_pairs - num_triples;
            if (diff) >= 0:
                return min(num_pairs, num_triples);
            else:
                matching = num_pairs  # because num_triples < num_pairs, ergo num_pairs is the number of matching pairs
                # print('matching', matching)
                additional = (num_triples - num_pairs) // 2;
                # print('additional', additional)
                return matching + additional
예제 #3
0
 def test_trix2(self):
     tri2 = tcards('k2 r2 b2')
     tri3 = tcards('r3 g3 b3')
     distraction = tcards('g5 b8 r9 k10 k11 k13')
     cards = distraction + tri2 + tri3
     pr = TMultiFinder(3, True)
     out, le = pr.recognize(cards)
     pytest.assume(len(out) == 2)
     pytest.assume(tri2 == out[2])
     pytest.assume(tri3 == out[3])
예제 #4
0
 def test_3ph(self):
     cards = tcards('k2 g2 ph b3 g3')
     pr = TMultiFinder(3, False)
     out, le = pr.recognize(cards, True)
     assert {2: (tcards('k2 g2 ph')), 3: (tcards('b3 g3 ph'))} == out
예제 #5
0
 def test_2x2(self):
     cards = tcards('k2 r2 b3 g3')
     pr = TMultiFinder(2, True)
     out, le = pr.recognize(cards)
     assert out == {2: (tcards('k2 r2')), 3: (tcards('b3 g3'))}
예제 #6
0
 def test_3fail(self):
     cards = tcards('k2 r2 b3 g3')
     pr = TMultiFinder(3, True)
     out, le = pr.recognize(cards)
     assert out == {}
예제 #7
0
 def test_4simpleph(self):
     cards = tcards('k2 r2 b2 b3')
     pr = TMultiFinder(4, True)
     out, le = pr.recognize(cards)
     assert out == {}
예제 #8
0
 def test_4simple(self):
     cards = tcards('k2 r2 b2 g2')
     pr = TMultiFinder(4, True)
     out, le = pr.recognize(cards)
     assert {2: (cards)} == out