def getvalue(example): value = [] for a, b in example: value.append(a) value.sort() value.reverse() return value def getcount(value): count = [] while value: counts = value.count(value[0]) value = value[counts:] count.append(counts) return count def judgecards(example): values = [] suits = [] connect = [range(i,i+5) for i in range(2,15)] connect.append([2, 3, 4, 5, 14]) for a, b in example: values.append(a) if b not in suits: suits.append(b) values.sort() if len(suits) == 1: if values in connect: kind = 1 else: kind = 4 elif values in connect: kind = 5 else: counts = getcount(values) if 3 in counts: if 2 in counts: kind = 3 else : kind = 6 else: if 4 in counts: kind = 2 elif 2 in counts: if counts.count(2) == 2: kind = 7 else: kind = 8 else: kind = 9 return kind def connect_max(value): if value == [14, 5, 4, 3, 2]: return 5 else: return max(value) def win_output(a, b): if a > b : return '1' elif a== b: return 'equal' else: return '2' def resort(value, count): revalue = [] while count: a = max(count) n = count.index(a) m = sum(count[:n]) count = count[:n]+count[n+1:] revalue.append(value[m]) value = value[:m]+value[m+a:] return revalue def sortcards(example_1, example_2, kind): values_1 = getvalue(example_1) values_2 = getvalue(example_2) if kind == 4 : for i in range(5): a, b = values_1[i], values_2[i] if a > b: return '1' elif a < b: return '2' else: return 'equal' elif kind in [1, 5]: a, b = connect_max(values_1), connect_max(values_2) return win_output(a, b) else: c_1 = getcount(values_1) c_2 = getcount(values_2) v_1 = resort(values_1, c_1) v_2 = resort(values_2, c_2) for i in range(len(v_1)): a, b =v_1[i], v_2[i] if a >b: return '1' elif a==b: pass else: return '2' return 'equal' def test(): pass if __name__ == '__main__': test()