周五没漂亮妹妹带我出去玩了呜呜,无聊在家扣手机,发现大家都在合成大西瓜 。作为一个未来年轻无为的计算机科学家(或许是人民艺术家),我是不屑于玩这种浪费时间又无聊的游戏的(因为玩了四小时才合成了第一个大西瓜),但为了投身到人民群众中去,我决定尝试写一个程序挂机跑一下。
写了一下午,我的第一版Python大西瓜终于写完了,虽然还是挺智障的,但至少打败了50%的人,也算通过图灵测试了哈哈哈哈哈哈。其实是怕过两天我写个最终版,大家都玩够了,小丑就是我自己了,为了吃一口热乎的s**t,我就现在发了哈哈哈哈。
如果下周五还有人玩这游戏,我还会继续写的。
本文章分为六个部分(如果我能坚持写完不睡着的话):
-
图像捕捉
-
水果检测
-
水果识别
-
去除噪声
-
点击控制
-
游戏策略
话不多说,开冲!
1. 图像捕捉
作为一个计算机程序,合成大西瓜的第一步就是能够看到大西瓜
这一步超级简单了,只需要使用python自带的windows图形界面接口win32gui就可以操作。其中最重要的环节就是获取浏览器窗口的上下左右四个顶点的坐标,调用FindWindow方法获取窗口对象,然后把窗口对象传给GetWindowRect获取顶点坐标。
这地方我卡了很久,因为FindWindow需要首先知道窗口的名字,我试了试“Edge”不对,“合成大西瓜”也不对,最后机智的我打开了Alt + del,发现它叫“小游戏:合成大西瓜 - 个人 - Microsoft\u200b Edge”仿佛在对我说:“我不叫喂,我叫……”
然后再用PIL库