最近得知快手开源了斗地主人工智能设计的源码,我迫不及待地下载观摩了他们的代码,去年我也想过用人工智能来实现斗地主的机器人算法,但阅读了一大堆资料之后,也是无从下手,没想到现在有人开了个好头,我怎能错过学习的机会。我测试过原来程序的斗地主的水平陪打还行,还有很大的提升空间,这个他们开源也是想各大高手加入研究,为此我萌生了一个把斗地主改成打跑得快的想法,因为我觉得跑得快相对斗地主简单很多,应该会效果更加好,为此我记录下我最近改造碰到的许多坑。

他这个是用了识别模块来进行界面截图识别扑克功能,识别原理是这样的:先截图游戏窗口全图,然后在全图里面和你要找的图像进行对比,所以首先要对你的游戏所用到的扑克,和打牌按钮截图

手牌和出牌各一套,不要想着用原来他们截好的一套图,虽然相似,但凡有一张有问题,都是个麻烦事,最好是你想玩那个游戏,就截图那个游戏一套图,这样保证100%没问题,这个识别准确率相当高,目前识别率真是100%。游戏当中我还没发现有一次识别出错的呢?比我以前见到的识别准确率高很多了,时代在进步啊。

准备好材料之后,第一步程序启动就要找到识别你游戏的窗口,如何准确地找到你游戏的窗口呢?

spy++工具自然少不了,这个是识别窗口神器,找到类名,和窗口标题就行了,程序代码会用到

这个工程有很多硬编码,窗口大小需要改动的,因为你识别的游戏窗口和他们原来的斗地主是不一样的。

图像搜索区域也是要注意的一个事项,如果搜索区域大于你的截图了,那么也是会异常的。

以上是识别问题,下面讲下改造逻辑思路

斗地主改造跑得快思路就是你一直扮演地主身份和其他玩家打牌,我做的是二人跑得快,那么就是一直是地主身份和地主下家打牌,三人的也没问题。只要一直定位自己是固定地主角色就行。但跑得快里面要有一个规则是管得上要管,这时你可以选择他返回的结果里面进行有牌操作的最优选项,如图改造算法

还有一些牌型问题,跑得快最后一下才可以三带一,和三不带,还可以三带两个单,这些规则都是可以灵活修改添加的,如图

经过10天研究与修改,终于可以跑起来了,效果图如下

这只是调试运行的程序,想要各个电脑都能用,还得打包成exe程序,这次用到的打包工具是以下两样

pip install pyinstaller

没有pip的先安装pip我是按这个来安装的Windows系统安装pip方法 - lovesoo - 博客园,

安装好pyinstaller后,只需要简单一个打包命令即可

pyinstaller main.py

等待打包完成,main.py的当前目录下会有dist目录,目录下会有main目录,里面有打包好的main.exe文件,这时还需要把程序用到的两个动态加载资源目录放到exe根前,如下图

运行效果是带命令窗口的,容易查看那里出错了,

至此可以说一个完整的人工智能代打跑得快程序设计基本功能完整了。

代打水平陪练还行,还有待训练提高和进行算法调整,以后有时间还会深入研究和提高,有兴趣的朋友可以联系我,欢迎一起研究和学习。

跑得快人工智能自动代打训练程序设计相关推荐

  1. 手机app跑得快游戏自动代打程序设计

    自从上次写了一个h5版本的自动代打,识别准确度非常高,就有了想写一个手机app版本的试试,最近刚好碰上了疫情被困,闲来无事,ny就做出了一个跑得快自动代打程序,效果非常好,先睹为快.视频效果在这htt ...

  2. 【机器学习】太香啦!只需一行Python代码就可以自动完成模型训练!

    自动化机器学习(Auto-ML)是指数据科学模型开发的管道组件自动化.AutoML 减少了数据科学家的工作量并加快了工作流程.AutoML 可用于自动化各种管道组件,包括数据理解,EDA,数据处理,模 ...

  3. 什么是人工智能自动编程?它只是一个噱头吗?

    简介:一个普通的开发者是否已经有了一些有用的工具,这些工具使用人工智能技术提高了他的生产力? 作者 | 梧忌 毫无疑问,人工智能将改变软件开发的方式 -- 我们已经看到了一些尝试将人工智能应用到软件开 ...

  4. ai自动写JAVA代码,人工智能自动写作软件2.0时代(示例代码)

    大家好,人工智能人工智能(ai)的定义是计算机科学的一个分支,自20世纪70年代以来被称为世界三大最先进技术之一(空间技术.能源技术和人工智能).它有许多定义,它们都是有意义的,没有对错之分.人工智能 ...

  5. 人工智能自动组方实习笔记2—萤火虫算法

    本文记录的是在实习人工智能自动组方时有关聚类分类时阅读过的一篇相关论文,虽然在最后没有使用该算法思想,但我觉得这种随机搜索最优解的方法对于很多场景都有应用,则将其整理记录下来. 如果有哪位小伙伴在做相 ...

  6. 人工智能自动驾驶竞技赛,人工智能自动驾驶汽车

    自动驾驶五大核心技术包括哪些? 一是车联网.在人工智能和以"电.智.网.共享"为代表的新四化驱动下,引领车联网从第一阶段向第二阶段演进.人机交互逐渐延伸到车辆.车辆与通信设施.车辆 ...

  7. 在OpenShift平台上验证NVIDIA DGX系统的分布式多节点自动驾驶AI训练

    在OpenShift平台上验证NVIDIA DGX系统的分布式多节点自动驾驶AI训练 自动驾驶汽车的深度神经网络(DNN)开发是一项艰巨的工作.本文验证了DGX多节点,多GPU,分布式训练在DXC机器 ...

  8. 2019年上半年收集到的人工智能自动驾驶方向干货文章

    2019年上半年收集到的人工智能自动驾驶方向干货文章 颠覆性技术丨无人驾驶 解析|自动驾驶的核心技术是什么? TC专访Waymo首席技术官:谷歌自动驾驶的过去和未来 全面解读自动驾驶的关键组成部分 史 ...

  9. 代写python代码一般多少钱_代写CO 353课程作业、代做Python程序设计作业、代写Python语言作业...

    代写CO 353课程作业.代做Python程序设计作业.代写Python语言作业 日期:2020-03-17 11:22 CO 353 - Homework assignment 4 Winter ' ...

最新文章

  1. 一位美国前辈工程师的十大职业发展忠告
  2. seaborn可视化散点图并自定义数据轴标签(X轴和Y轴的轴标签,Change X Y Axis Labels to a Seaborn Plot)
  3. 005_FreeMarker入门程序
  4. 提交MTBF eservice以及log注意事项
  5. html怎么让方块自动旋转,如何使用纯CSS实现一个圆环旋转错觉的动画效果(附源码)...
  6. Windows XP系统安装SQL Server 2005(开发版)图解
  7. linux的mysql如何删除用户_linux mysql增加用户,删除用户,以及用户权限
  8. 数组中其余的排除_6.8 C++字符数组 | 输出a、b、c
  9. python发送邮件的模块_python Email 邮件发送模块
  10. java基础入门(一)
  11. 8月5日发布卡巴斯基授权许可key-卡巴斯基key
  12. 不同手机型号图文预览_手机支持型号汇总
  13. 全社会有效需求不足分析
  14. 淘宝HSF 框架使用 总结
  15. 文献跟踪、文献订阅工具
  16. c# 检测中英输入法_C# Winform 中如何获取本机安装输入法,并设置为默认输出语言,如何打开搜狗输入法和手写板...
  17. ubuntu里解决Firefox登陆12306问题
  18. PostgreSQL汉字转拼音
  19. JavaScript html 图片滑动切换效果,幻灯片式切换,新闻展示,滚动新闻
  20. 10a大电流稳压芯片_高压dc48v降12v10a大电流降压ic详解

热门文章

  1. 九点手眼标定的原理及方法,视觉引导必知必会。
  2. matlab 里的数据粘贴不出来怎么办,为什么excel表格数据复制不出来怎么办_为什么excel中内容不能复制粘贴...
  3. virtio虚拟化框架
  4. 数据结构与算法:一图弄懂维特比viterbi算法
  5. jQuery实现网页聊天窗口对话
  6. allegro差分信号走线_原创|PCB设计软件allegro16.6演示差分规则的设置
  7. C#与三菱PLC以太网通讯程序上位机源码 通过3E帧SLMP MC协议与三菱FX5U Q系列PLC通讯
  8. 域AD策略屏蔽USB驱动
  9. 常见步进电机驱动芯片
  10. 10款网站后台管理系统模板_bootstrap网站后台模板_html后台模板下载(四)