4.2.5 获取图片连接方式
通过自定义函数getLinkType()获取图片的连接方式,代码如下所示。
def getLinkType(pre_row, pre_col, cur_row, cur_col):
if pics_map[pre_row][pre_col] != pics_map[cur_row][cur_col]:
return NONE_LINK
if isNoCornerLink(pre_row, pre_col, cur_row, cur_col):
return NO_CORNER_LINK
if isOneCornerLink(pre_row, pre_col, cur_row, cur_col):
return ONE_CORNER_LINK
if isTwoCornerLink(pre_row, pre_col, cur_row, cur_col):
return TWO_CORNER_LINKreturn NONE_LINK
其中,getLinkType()函数的前两个参数表示第一次选中图片的行号和列号,后两个参数表示第二次选中图片的行号和列号。第2-3行表示当选中的两张图片不同时,返回自定义常量NONE_LINK;之后分别调用自定义函数isNoCornerLink()、isOneCornerLink()和isTwoCornerLink()判断两张图片是否是直接连通、单拐点连通和双拐点连通;如果不是以上三种连通方式,则返回NONE_LINK。
4.2.6 根据连通状态处理图片
回到“4.2.2 取消图片的标识”中提到的clickCanvas()函数中。如果两次选中的不是同一张图片,则调用“4.2.5 获取图片连接方式”中提到的getLinkType()判断两张图片的连通状态,代码如下所示。
linktype = getLinkType(PRE_CLICK_ROW, PRE_CLICK_COL, click_row, click_col)
之后,根据linktype的值进行后续处理,代码如下所示。
if l