from sets import Set as set all = set(range(1,49)) bright = set((1,9,29,41,45)) animal = set((5,13,17,21,25,30,37,46)) ribbon = set((2,6,10,14,18,22,26,34,38,47)) junk = all - bright - animal - ribbon wet = set((45,)) bird = set((5,13,30)) red = set((2,6,10)) blue = set((22,34,38)) grass = set((14,18,26)) double = set((42,48)) def score(hand): point = 0 nb = len(hand & bright) if nb < 3: pass elif nb == 3: if wet <= hand: point += 2 else: point += 3 elif nb == 4: point += 4 elif nb == 5: point += 15 na = len(hand & animal) if na < 5: pass else: point += 1 + (na - 5) if bird <= hand: point += 5 nr = len(hand & ribbon) if nr < 5: pass else: point += 1 + (nr - 5) if red <= hand: point += 3 if blue <= hand: point += 3 if grass <= hand: point += 3 nj = len(hand & junk) nj += len(hand & double) if nj < 10: pass else: point += 1 + (nj - 10) return point