1、前言
Python实现的qq连连看辅助,仅用于学习,请在练习模式下使用,请不要拿去伤害玩家们
2、基本环境配置
版本:
系统:Windows
3、相关模块:
1conimporttimeimportrandom
1conimporttimeimportrandom
4、使用方法
开始游戏后运行就行了,再次提示,请在练习模式中使用,否则可能会被其他玩家举报。
效果图
5、代码实现
1in32con6importtime7importrandom89defcolor_hash(color):10value=""11foriinrange(5):12value+="%d,%d,%d,"%(color[0],color[1],color[2])13returnhash(value)141516defimage_hash(img):17value=""18foriinrange(5):19c=((i*3,i*3))20value+="%d,%d,%d,"%(c[0],c[1],c[2])21returnhash(value)222324defgame_area_image_to_matrix():25pos_to_image={}2627forrowinrange(ROW_NUM):28pos_to_image[row]={}29forcolinrange(COL_NUM):30grid_left=col*grid_width31grid_top=row*grid_height32grid_right=grid_left+grid_width33grid_bottom=grid_top+grid_height3435grid_image=game_area_((grid_left,grid_top,grid_right,grid_bottom))3637pos_to_image[row][col]=grid_image3839pos_to_type_id={}40image_map={}4142empty_hash=color_hash((48,76,112))4344forrowinrange(ROW_NUM):45pos_to_type_id[row]={}46forcolinrange(COL_NUM):47this_image=pos_to_image[row][col]48this_image_hash=image_hash(this_image)49ifthis_image_hash==empty_hash:50pos_to_type_id[row][col]=051continue52image_(this_image_hash,len(image_map)+1)53pos_to_type_id[row][col]=image_(this_image_hash)5455returnpos_to_type_id565758defsolve_matrix_one_step():59forkeyinmap:60arr=map[key]61arr_len=len(arr)62forindex1inrange(arr_len-1):63point1=arr[index1]64x1=point1[0]65y1=point1[1]66forindex2inrange(index1+1,arr_len):67point2=arr[index2]68x2=point2[0]69y2=point2[1]70ifverifying_connectivity(x1,y1,x2,y2):71(point1)72(point2)73matrix[y1][x1]=074matrix[y2][x2]=075ifarr_len==2:76(key)77returny1,x1,y2,x2787980defverifying_connectivity(x1,y1,x2,y2):81max_y1=y182whilemax_y1+1ROW_NUMandmatrix[max_y1+1][x1]==0:83max_y1+=184min_y1=y185whilemin_y1-1=0andmatrix[min_y1-1][x1]==0:86min_y1-=18788max_y2=y289whilemax_y2+1ROW_NUMandmatrix[max_y2+1][x2]==0:90max_y2+=191min_y2=y292whilemin_y2-1=0andmatrix[min_y2-1][x2]==0:93min_y2-=19495rg_min_y=max(min_y1,min_y2)96rg_max_y=min(max_y1,max_y2)97ifrg_max_y=rg_min_y:98forindex_yinrange(rg_min_y,rg_max_y+1):99min_x=min(x1,x2)100max_x=max(x1,x2)101flag=True102forindex_xinrange(min_x+1,max_x):103ifmatrix[index_y][index_x]!=0:104flag=False105break106ifflag:107returnTrue108109max_x1=x1110whilemax_x1+1COL_NUMandmatrix[y1][max_x1+1]==0:111max_x1+=1112min_x1=x1113whilemin_x1-1=0andmatrix[y1][min_x1-1]==0:114min_x1-=1115116max_x2=x2117whilemax_x2+1COL_NUMandmatrix[y2][max_x2+1]==0:118max_x2+=1119min_x2=x2120whilemin_x2-1=0andmatrix[y2][min_x2-1]==0:121min_x2-=1122123rg_min_x=max(min_x1,min_x2)124rg_max_x=min(max_x1,max_x2)125ifrg_max_x=rg_min_x:126forindex_xinrange(rg_min_x,rg_max_x+1):127min_y=min(y1,y2)128max_y=max(y1,y2)129flag=True130forindex_yinrange(min_y+1,max_y):131ifmatrix[index_y][index_x]!=0:132flag=False133break134ifflag:135returnTrue136137returnFalse138139140defexecute_one_step(one_step):141from_row,from_col,to_row,to_col=one_step142143from_x=game_area_left+(from_col+0.5)*grid_width144from_y=game_area_top+(from_row+0.5)*grid_height145146to_x=game_area_left+(to_col+0.5)*grid_width147to_y=game_area_top+(to_row+0.5)*grid_(from_x,from_y)150()151152(to_x,to_y)153()154155156if__name__=='__main__':157158COL_NUM=19159ROW_NUM=11160161screen_width=(0)162screen_height=(1)163164hwnd=(,'QQ游戏-连连看角色版')165ifhwnd==0:166exit(-1)167168(hwnd,_RESTORE)169(hwnd)170window_left,window_top,window_right,window_bottom=(hwnd)171ifmin(window_left,window_top)0orwindow_rightscreen_widthorwindow_bottomscreen_height:172exit(-1)173window_width=window_right-window_left174window_height=window_bottom-window_top175176game_area_left=window_left+14.0/800.0*window_width177game_area_top=window_top+181.0/600.0*window_height178game_area_right=window_left+603/800.0*window_width179game_area_bottom=window_top+566/600.0*window_height180181game_area_width=game_area_right-game_area_left182game_area_height=game_area_bottom-game_area_top183grid_width=game_area_width/COL_NUM184grid_height=game_area_height/ROW_NUM185186game_area_image=((game_area_left,game_area_top,game_area_right,game_area_bottom))187188matrix=game_area_image_to_matrix()189190map={}191192foryinrange(ROW_NUM):193forxinrange(COL_NUM):194grid_id=matrix[y][x]195ifgrid_id==0:196(grid_id,[])198arr=map[grid_id]199([x,y])200201=0202203whileTrue:204one_step=solve_matrix_one_step()205ifnotone_step:206exit(0)207execute_one_step(one_step)208((0,0)/1000)主要思路就是利用pywin32获取连连看游戏句柄,获取游戏界面的图片,对方块进行切割,对每个方块取几个点的颜色进行比对,均相同则认为是同一个方块,
版权所有 © Copyright © 2002-2030 龙辉游戏资讯网站地图