WIDTH, HEIGHT = 800, 615 RED = (255, 48, 48) BLUE = (65, 105, 225) GREEN = (0, 139, 0) board = [[' '] * 15 for line in range(15)] # 棋型编号 # 第一位是主棋子的数量 # 第二位是一级棋型编号,规则是连在一起的主棋子有多到少 # 第三位是二级棋型编号,规则是从左向右修改,先修改空格,再添加对方棋子(比如O) value_model_X_test = { '5': { '5': ('XXXXX', 1000) }, '4': { '4p_0': (' XXXX ', 400), '4_0_1_e': (' XXXX', 100), # 结尾 '4_0_2': (' XXXXO', 100), '4_0_3_s': ('XXXX ', 100), # 开头 '4_0_4': ('OXXXX ', 100), '4_1_e': (' XXX X', 120), # 结尾 '4_1_1': (' XXX XO', 120), '4_1_2_e': (' XXX X', 101), # 结尾 '4_1_3': (' XXX XO', 101), '4_1_4_s': ('XXX X', 100), # 无需在结尾检测,因为结尾的情况已枚举完毕 '4_1_6_e': ('OXXX X', 100), # 结尾 '4_1_7': ('OXXX XO', 100), '4_2': (' XX XX ', 110), '4_2_1': (' XX XX ', 108), '4_2_2': (' XX XX ', 106), '4_2_3_e': (' XX XX', 105), # 结尾 '4_2_4': (' XX XXO', 105), '4_2_5': (' XX XX ', 108), '4_2_6': (' XX XX ', 106), '4_2_7': (' XX XX ', 104), '4_2_8_e': (' XX XX', 102), # 结尾 '4_2_9': (' XX XXO', 102), '4_2_10': (' XX XX ', 106), '4_2_11': (' XX XX ', 103), '4_2_12': (' XX XX ', 102), '4_2_13_e': (' XX XX', 101), # 结尾 '4_2_14': (' XX XXO', 101), '4_2_15_s': ('XX XX ', 105), # 开头 '4_2_16_s': ('XX XX ', 102), # 开头 '4_2_17_s': ('XX XX ', 101), # 开头 '4_2_19_s': ('XX XXO', 100), # 开头 '4_2_20': ('OXX XX ', 105), '4_2_21': ('OXX XX ', 102), '4_2_22': ('OXX XX ', 101), '4_2_23_e': ('OXX XX', 100), # 结尾 '4_2_24': ('OXX XXO', 100), '4_3': (' X XXX ', 121), '4_3_1': (' X XXX ', 102), '4_3_2_e': (' X XXX', 101), '4_3_3': (' X XXXO', 101), '4_3_4_s': ('X XXX ', 120), # 开头 '4_3_5_s': ('X XXX ', 101), # 开头 '4_3_6_e': ('OX XXX', 100), '4_3_7_s': ('X XXXO', 100), # 开头 '4_3_8': ('OX XXX ', 120), '4_3_9': ('OX XXX ', 101), '4_3_10': ('OX XXXO', 100), }, '3': { '3p_0': (' XXX ', 60), '3p_0_1': (' XXX ', 30), '3_0_2_e': (' XXX', 25), # 结尾 '3_0_3': (' XXXO', 25), '3p_0_4': (' XXX ', 30), '3_0_5': (' XXX ', 25), '3_0_6_s': ('XXX ', 25), # 开头 '3_0_7': ('OXXX ', 25), '3p_1': (' XX X ', 37), '3_1_1_e': (' XX X', 27), # 结尾 '3_1_2': (' XX XO', 27), '3p_1_3': (' XX X ', 31), '3_1_4_e': (' XX X', 26), # 结尾 '3_1_5': (' XX XO', 26), '3p_1_6': (' XX X ', 30), '3_1_7_e': (' XX X', 25), # 结尾 '3_1_8': (' XX XO', 25), '3_1_9_s': ('XX X ', 25), # 开头 '3_1_10': ('OXX X ', 25), '3p_2': (' X XX ', 37), '3p_2_1': (' X XX ', 31), '3p_2_2': (' X XX ', 30), '3p_2_3_e': (' X XX', 25), # 结尾 '3_2_4': (' X XXO', 25), '3_2_5_s': ('X XX ', 27), # 开头 '3_2_6_s': ('X XX ', 26), # 开头 '3_2_7_s': ('X XX ', 25), # 开头 '3_2_8': ('OX XX ', 27), '3_2_9': ('OX XX ', 26), '3_2_10': ('OX XX ', 25), '3_3': (' X X X ', 27), '3_3_1': (' X X X ', 26), '3_3_2_e': (' X X X', 25), # 结尾 '3_3_3': (' X X XO', 25), '3_3_4': (' X X X ', 26), '3_3_5': (' X X X ', 25), '3_3_6_e': (' X X X', 24), # 结尾 '3_3_7': (' X X XO', 24), '3_3_8_s': ('X X X ', 25), # 开头 '3_3_9_s': ('X X X ', 24), # 开头 '3_3_10_s': ('X X XO', 24), # 开头 '3_3_11': ('OX X X ', 25), '3_3_12': ('OX X X ', 24), '3_3_13_e': ('OX X X', 23), # 结尾 '3_3_14': ('OX X XO', 23), }, '2': { '2_0': (' XX ', 8), '2_0_1': (' XX ', 4), '2_0_2': (' XX ', 3), '2_0_3_e': (' XX', 1), # 结尾 '2_0_4': (' XXO', 1), '2_0_5': (' XX ', 4), '2_0_6': (' XX ', 3), '2_0_7': (' XX ', 2), '2_0_8': (' XX ', 3), '2_0_9': (' XX ', 2), '2_0_10_s': ('XX ', 1), # 开头 '2_0_11': ('OXX ', 1), '2_1': (' X X ', 4), '2_1_1': (' X X ', 3), '2_1_2_e': (' X X', 1), # 结尾 '2_1_3': (' X XO', 1), '2_1_4': (' X X ', 3), '2_1_5': (' X X ', 2), '2_1_6_s': ('X X ', 1), # 开头 '2_1_7': ('OX X ', 1), '2_2': (' X X ', 4), '2_2_1': (' X X ', 3), '2_2_2_e': (' X X', 2), '2_2_3': (' X XO', 2), '2_2_4': (' X X ', 3), '2_2_5': (' X X ', 2), '2_2_6_e': (' X X', 1), '2_2_7': (' X XO', 1), '2_2_8_s': ('X X ', 2), '2_2_9_s': ('X X ', 1), '2_2_10': ('OX X ', 1), '2_2_11': ('OX X ', 1), '2_3': (' X X ', 3), '2_3_1_e': (' X X', 2), '2_3_2': (' X XO', 2), '2_3_3_s': ('X X ', 2), '2_3_4_s': ('X X', 1), '2_3_5_s': ('X XO', 1), '2_3_6': ('OX X ', 2), '2_3_7_e': ('OX X', 1), '2_3_8': ('OX XO', 1) } } value_model_O_test = \ {_[0]: {s[0]: (s[1][0].replace('O', '*').replace('X', 'O').replace('*', 'X'), s[1][1]) for s in _[1].items()} for _ in value_model_X_test.items()} value_model_X = [ {_[0]: [s for s in _[1].items() if s[0][-1] in ['s'] + [str(_) for _ in list(range(10))]] for _ in value_model_X_test.items()}, {_[0]: [s for s in _[1].items() if s[0][-1] in [str(_) for _ in list(range(10))]] for _ in value_model_X_test.items()}, {_[0]: [s for s in _[1].items() if s[0][-1] in ['e'] + [str(_) for _ in list(range(10))]] for _ in value_model_X_test.items()} ] value_model_O = [ {_[0]: [s for s in _[1].items() if s[0][-1] in ['s'] + [str(_) for _ in list(range(10))]] for _ in value_model_O_test.items()}, {_[0]: [s for s in _[1].items() if s[0][-1] in [str(_) for _ in list(range(10))]] for _ in value_model_O_test.items()}, {_[0]: [s for s in _[1].items() if s[0][-1] in ['e'] + [str(_) for _ in list(range(10))]] for _ in value_model_O_test.items()} ] if __name__ == '__main__': # print(value_model_X) # print(value_model_O) test_l = [t for _ in value_model_X_test.items() for t in _[1].items()] print(len(test_l))