|
|
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))
|
|
|
|