有很多Flash游戏要求你做重复的动作.一个例子是FarmVille或获取在线扑克游戏的统计数据.
在屏幕上看到的内容,机器人算法和点击鼠标之间创建界面的最佳方法是什么?
所以基本上,当我在脸书上玩德州扑克时,如果我得到AA,我希望机器人点击全押.如果我没有获得AA,我想弃牌.这只是一个例子,而不是实际的策略.或者另一个例子是在farmville中路由任务.
所以基本上.它必须抓住屏幕的图片.识别模式并将其转换为算法的输入.输出算法将点击其他一些(可能是相同的)模式.
有什么建议?
我有为在线纸牌游戏构建基于计算机视觉的简单bot的经验。
我使用了一个名为autopy的跨平台python库来处理自动鼠标单击和键盘输入。机器人捕获屏幕每0.5秒,然后将捕获的屏幕转换为numpy数组以进行分析。Python具有良好的图像处理(PIL,OpenCV python绑定)和机器学习实用程序(scikit-learn)。为了进行简单的图像模式识别,该程序会提取图像区域上像素亮度的平均值来做出决定。对于复杂的文件,正在使用OpenCV模板匹配和SVM分类器。
服务器是第一次抓到我的机器人,所以我猜服务器上有一些机器人检测程序。在我添加了更多的随机性和灵活的决策之后,该机器人绕过了服务器端机器人检测。
所有人都花了我一个星期六,而我则享受了星期日。