吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 939|回复: 23
收起左侧

[Python 原创] 连连看匹配算法

[复制链接]
calm2023 发表于 2024-10-16 19:02
之前一直想写一个连连看的小工具,这样可以实现自动点击 ,找了一圈资料,发现 还是没有合适的,最后无奈,只能自己写。这个东西已经写了很久了,今天分享一下,毕竟花了很多时间

QQ20241016-151056.png

手动去点,很慢。
微信截图_22222.png
所以就有想法弄一个自动去匹配的代码 ,所以就有下面的效果
QQ203333333333333333.png
-------------------------------------------------------------------------------------------------------------------------------------
实现过程  ,
第一步  就是识别图片,将每个图片  按小方块截图成图 ,
第二步  按小图片分类把 将图按顺序标记数字  
第三步  将数字保存成一个二维数组
第四步  就是核心了,二维数组的算法(就是哪些数字是相同且可以连接的)
第五步  根据算法返回的坐标去点击就能实现全自动了


import os.path
import cv2
import numpy as np
import pyautogui
import win32api
import win32gui
import win32con
from PIL import ImageGrab
import time
import random
import requests



通过截图  生成二维数组
[[1 ,7 ,1 ,3 ,13 ,12 ,8 ,17 ,15 ,11 ,20 ,10 ,],
[2 ,8 ,11 ,16 ,5 ,8 ,6 ,21 ,5 ,12 ,14 ,16 ,],
[3 ,9 ,12 ,3 ,15 ,8 ,7 ,14 ,18 ,13 ,13 ,21 ,],
[4 ,6 ,9 ,2 ,9 ,7 ,14 ,19 ,11 ,20 ,21 ,1 ,],
[5 ,9 ,13 ,17 ,7 ,10 ,17 ,11 ,4 ,19 ,1 ,2 ,],
[6 ,10 ,14 ,18 ,19 ,16 ,3 ,18 ,12 ,21 ,17 ,4 ,],
[5 ,2 ,15 ,6 ,20 ,19 ,16 ,4 ,20 ,18 ,15 ,10 ,],
]
每一行用 下划线拆分
1,7,1,3,13,12,8,17,15,11,20,10_2,8,11,16,5,8,6,21,5,12,14,16_3,9,12,3,15,8,7,14,18,13,13,21_4,6,9,2,9,7,14,19,11,20,21,1_5,9,13,17,7,10,17,11,4,19,1,2_6,10,14,18,19,16,3,18,12,21,17,4_5,2,15,6,20,19,16,4,20,18,15,10
把上面的数据  转成字符串  赋给变量mapStr   ,最后再发送过去


url='aHR0cDovLzQzLjEzOS4yNDguNDA6ODg1MC9sbGs='response = requests.post(url解码再放在这, data={'key':'AKDSBETE','map': mapStr})
res=response.json()



请求成功后  会返回 data  ,data 里面的  都是 坐标信息 ,  4个信息 为一组,前两个是 第一个点,后面两是第二个点  
'0': [0, 3, 1, 4]    0  表示第一次点   
0,3  表示第一个点
1,4 表示第二个点

感兴趣的小伙伴可以去试试

免费评分

参与人数 2吾爱币 +1 热心值 +2 收起 理由
fhlfxtd + 1 + 1 我很赞同!
sapin + 1 好怀念的游戏啊

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| calm2023 发表于 2024-10-26 12:18
longhua23 发表于 2024-10-25 15:55
没看懂,如何判断两个图片还是相同的

这是楼上大佬的思路
                               每个小方块截取9个点,对比9个点的数据,基本上就可以判断是否相同了。
                              N年前就玩过的。

我的思路是
                     截取图片,每张图片按坐标截取 ,截取时 有个注意事项 ,往内截取一点,这样图片更完整,截取了多个图片后,再从第1张图片开始标记顺序,若没有就按顺序编号,若有就增加编号
                     图片比对的方式有很多,只要两张图片截取的大小一样,就可以快速比对是否是同一张
 楼主| calm2023 发表于 2024-10-29 12:39

aHR0cDovLzQzLjEzOS4yNDguNDA6ODY4Ni90b29s              base64 一下  ,下载后解压,黄颜色图标
afti 发表于 2024-10-16 21:44
yanlusu 发表于 2024-10-16 22:06
每个小方块截取9个点,对比9个点的数据,基本上就可以判断是否相同了。
N年前就玩过的。
侃遍天下无二人 发表于 2024-10-21 23:46
你应该把服务器上的代码放出来呀,核心咋是调api呢
1e3e 发表于 2024-10-22 09:08
python本地ocr不可以吗?
 楼主| calm2023 发表于 2024-10-22 18:47
yanlusu 发表于 2024-10-16 22:06
每个小方块截取9个点,对比9个点的数据,基本上就可以判断是否相同了。
N年前就玩过的。

哇,这个思路可以呀,学习了
 楼主| calm2023 发表于 2024-10-22 18:48
1e3e 发表于 2024-10-22 09:08
python本地ocr不可以吗?

这是什么思路,没看明白,大佬请细说
milu1123 发表于 2024-10-23 08:39
python的  pywinauto  可以不???
 楼主| calm2023 发表于 2024-10-24 11:50
milu1123 发表于 2024-10-23 08:39
python的  pywinauto  可以不???

可以的, pywinauto 虽然我没用过,但查了资料,这个库也可以
aiguohou 发表于 2024-10-24 12:27
不好玩……
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-12 15:33

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表