程序员版--致青春(二)——11平台dota胜负预判器

之所以取“致青春”这个名,是因为我的大学要结束了。想起之前写了一些小工具,但没写博客,因此现在补上,以此纪念我即将逝去的青春。

这个工具是今年2月份做的。做这玩意的初衷是,打dota时,队友太坑,很难赢。因此能否弄一个程序,可以根据双方的实力自动预判哪边胜利?

11是一个游戏对战平台。它的天梯系统里存着每个玩家的游戏数据,这些游戏数据是可以反映该玩家的水平的。比如天梯积分,胜率,mvp数量,各种名将值。5v5匹配时,11是根据天梯积分尽可能的匹配平衡。其实天梯积分已经能较好的反映一个玩家的水平了,但是由于这两个原因,不能单纯根据天梯积分来预判:1 匹配时,11平台让双方的平均积分尽可能接近 2 开小号(新号)的玩家不少,天梯积分反映不了水平,或许胜率,mvp等数据更能反映水平。

下面分两部分,第一部分描述我实现的,第二部分描述一下我yy的。

已实现的:思路是先从dota游戏进程(魔兽争霸)中读出十个玩家的id名称,然后根据这些名称在天梯积分系统中查找到对应玩家的游戏数据(积分,胜率,mvp数,名将值),然后数学分析一下这些数值,最后展示有用的信息给用户,让用户看信息判断。

Yy的:下面所说的功能是自己当初想弄的,后来由于时间和实力的问题,没有实现。1 收集许多场数的游戏记录,分析一下那些玩家数据(天梯分,胜率,mvp)对胜负的影响各自的权重,然后根据权重来预判。由于收集游戏记录难做,分析数据应该要数据挖掘的知识,当初数据挖掘学得较水,所以没实现。 2 影响游戏的胜负,除了双方的实力水平,还有其他因素,比如英雄阵容。要弄这个,也需要数据挖掘的知识来分析哪些英雄组合容易得胜,哪些英雄组合克哪些组合。有点遗憾,不准备读研究生,没机会再学数据挖掘的课程了,当初大三小学期学了一个星期,感觉都没入门。我打算工作后自己学了,挺有意思的。

最后,说一下我所实现的功能的技术细节。

1 如何读十个玩家id名称。当初做之前有2个想法,读内存或者网络截包。后来是读取魔兽争霸的进程的内存。首先是用反汇编工具OD和CE来跟踪游戏进程内存,找到玩家id的内存地址。当时找了很久。不过有一个思路,就是一般游戏数据的都是有几层的地址构成的,我们需要找到一个“基址”,然后算出动态地址。刚开始找基址时,我只用了ce一层一层跟踪,后来发现,还没有找到静态地址(在ce显示绿色的),就不能继续跟踪了。网上找了一下,逛了一些论坛,发现ce结合od比较强大,od可以看到汇编代码,根据汇编代码往下跟踪,当时学了一些跟踪方法,最后也花了不少时间终于找到了。最后当然是用c++结合windows api来写代码实现。

2 如何根据玩家id查询玩家数据。11是有游戏社区的,从网页上我们输入玩家id是可以查到的。所以只需要模拟http请求,再解析一下网页结构,就可以查到了。由于当初用php写过第三方的网页版的飞信,所以对抓包分析,用cookie模拟登陆,发送post或者get,解析html文件等这些比较熟悉。那么这里直接用php实现了。Php的apache服务器可以在自己电脑,也可以另外一个服务器(我当时用了新浪服务器sae,后来貌似是nginx正向代理出了问题,用不了)。所以,整体是这样的,c++读玩家id,启动浏览器通过get方法把玩家id传到apache服务器,php获取玩家姓名后,跟11游戏社区战绩中心http交互,解析出数据。在分析一下数据,在浏览器展示给用户。

C++加php实现,完全是为了自己方便,直接利用自己先前的知识。其实直接用c++也可以,不过貌似c++通过socket实现http协议挺麻烦的,网上又找不到现有的网络库(后来发现linux有许多c++版的http网络库,不过我这是在windows也不能直接用,有时间可以学习一下linux的实现,然后自己在windows实现一个)。所以其实最好的是用C#写,既可以调用win api读内存,又有现有的http函数库。

就说这么多了。有些想法由于知识和时间的问题没实现,自己工作后有时间再弄一下吧。如果有读者想搞一个这样的11平台胜负预判器,如果需要我的代码可以联系一下我。其实我2月份搞了这个后。不久11平台推出了内挂:11平台dota小秘书,就是可以看是个玩家的游戏数据的。其实从游戏的公平性和健康性来说,这种东西是有负面影响的。11推这个,也许是为了赚点钱。

我的技术博客:http://linger.devhub.com/blog/1911619--11dota/

程序员版--致青春(二)——11平台dota胜负预判器相关推荐

  1. 程序员奶爸自制AI喂奶检测仪,预判宝宝饿点,不让哭声影响老婆睡眠

    梦晨 发自 凹非寺 量子位 | 公众号 QbitAI 一位程序员老哥Caleb最近喜得一子,不过烦恼也随之而来. 刚出生的Baby每隔几个小时就要喂一次,夜里饿了就会放声大哭,这时全家都被吵醒,被折腾 ...

  2. 程序员版《我和我的家乡》,拼搏奋斗的IT人是家乡的骄傲!

    作者 | 雷架 来源 |  爱笑的架构师 记者:导演,国庆节您要上个电影<程序员版我和我的家乡>,广大IT同胞都想知道电影讲了些什么. 导演:嗯,为了让更多的人聚焦到这一高素质高智商的群体 ...

  3. 陈欧体程序员版And各种版本

    原版 你只闻到我的香水,却没看的我的汗水,你有你的规则,我有我的选择,你否定我的现在,我决定我的未来,你嘲笑我一无所有,不配去爱,我可怜你总是等待,你可以轻视我们的年轻,我们会证明这是谁的时代,梦想是 ...

  4. 千万程序员都说完美,成为Java顶尖程序员 ,看这11本书就够了

    成为Java顶尖程序员 ,看这11本书就够了 如下是我推荐给Java开发者们的一些值得一看的好书.可是这些书里面并无Java基础.Java教程之类的书,不是我不推荐,而是离我本身学习 Java基础技术 ...

  5. 都25了年薪还在二十万!你这是什么水平?程序员:才二十万,你不废了吗...

    这一届网友有多关心工资?看看热搜就知道了! 除了隔三差五上个行业薪资汇总,年薪二十万是怎样的水平又被挂上了热搜. 年薪达到30万,绝对是大多数人眼中的社会精英.大家对满意offer的定义基本相同:高薪 ...

  6. 程序员版《人民的名义》,谁才是真正的主角?

    近日一部<人民的名义>,凭借其大尺度的反腐剧情,演技超群的老戏骨们的同台飙戏,播出半月热度始终不减,被誉为"逆天神剧",直冲电视剧排行榜榜首. 然而,当程序员们看该剧的 ...

  7. 【To Do】程序员面试金典——18.11最大子方阵

    程序员面试金典--18.11最大子方阵 Solution1:我的答案.最笨的方法,时间复杂度是O(n3)O(n3)O(n^3) class SubMatrix { public:int maxSubM ...

  8. 单身程序员上班路上二三事(一)

    单身程序员上班路上二三事(一) 公交车上,前面和中间那部分在早高峰总是人满为患的.我挤到最后一排靠窗座的邻座,这是我最爱的位置. 下一站,上来一个身材高挑,头发乌黑笔直的Female,虽戴着口罩,但眉 ...

  9. 7个程序员常用的接单平台推荐

    推荐7个程序员常用的接单平台,不管做兼职.副业,还是全职自由职业,都可能会用到下面几个网站,特别推荐第一个. 飞援 地址链接:前端开发外包_小程序开发兼职_程序员兼职平台-飞援 程序员远程灵活用工平台 ...

最新文章

  1. JAVA多线程中join()方法的详细分析
  2. 使用squid配置透明代理并对上网行为进行控制
  3. 选什么地方,进多少商品,想开超市,这些必须了解
  4. python统计字符在文件中出现的次数_一文搞定统计字符串中某字符出现的频次
  5. micropython flask_在Python的Flask框架中实现单元测试的教程
  6. Opencv3.0.0安装包
  7. vs2010 设计视图中控件无法加载,提示未将对象设置到对象的实例。
  8. c++ using 前置声明_详解C++ 前置声明
  9. matlab y2=sin(3t)exp(-t/3);,Matlab-期末考试题库(共12套卷)
  10. dnf如何快速拾取物品_极简断舍离|如何快速处理闲置物品?
  11. 《C#高效编程》读书笔记11-理解短小方法的优势
  12. SAP ABAP里数据库表的Storage Parameters从哪里来的 1
  13. PAIP.彩票系统的对外接口流程实录
  14. ObjectARX反应器概述
  15. 违章查询免费api接口代码
  16. gartner 曲线解读
  17. 与app开发者共享还是不共享
  18. 蓝桥 卷“兔”来袭编程竞赛专场-10仿射加密 题解
  19. 手把手教你玩转谷歌TensorFlow
  20. 通信工程保研历程--选择比努力重要

热门文章

  1. 个人经典音乐收藏(七)Encore une fois,Helene Segara
  2. 三维建模 Cinema 4D如何在 曲面上做表情
  3. 行业分析| 泛娱乐应用出海探索
  4. 高端感的设计logo要点
  5. DLSS技术有多强?游戏帧数提升利器!
  6. HTML+JS 实现手机号码归属地查询功能
  7. 关于element-ui国际化label超出换行问题
  8. python中font的用法_Python font.nametofont方法代码示例
  9. 100个python算法超详细讲解:出售金鱼
  10. idea 不自动提示代码 @Autowired等不高亮显示