calm2023 发表于 2024-10-16 19:02

连连看匹配算法

之前一直想写一个连连看的小工具,这样可以实现自动点击 ,找了一圈资料,发现 还是没有合适的,最后无奈,只能自己写。这个东西已经写了很久了,今天分享一下,毕竟花了很多时间:lol。



手动去点,很慢。

所以就有想法弄一个自动去匹配的代码 ,所以就有下面的效果

-------------------------------------------------------------------------------------------------------------------------------------
实现过程,
第一步就是识别图片,将每个图片按小方块截图成图 ,
第二步按小图片分类把 将图按顺序标记数字
第三步将数字保存成一个二维数组
第四步就是核心了,二维数组的算法(就是哪些数字是相同且可以连接的)
第五步根据算法返回的坐标去点击就能实现全自动了


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
把上面的数据转成字符串赋给变量mapStr   ,最后再发送过去


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



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

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

calm2023 发表于 2024-10-26 12:18

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

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

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

calm2023 发表于 2024-10-29 12:39

ydh1986 发表于 2024-10-26 21:35
游戏在哪里下载

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可以不{:1_907:}???

calm2023 发表于 2024-10-24 11:50

milu1123 发表于 2024-10-23 08:39
python的pywinauto可以不???

可以的, pywinauto 虽然我没用过,但查了资料,这个库也可以

aiguohou 发表于 2024-10-24 12:27

不好玩……
页: [1] 2 3
查看完整版本: 连连看匹配算法