微信号:imooc-com

介绍:慕课网是一个超酷的互联网、IT技术免费学习平台,创新的网络一站式学习、实践体验;服务及时贴心,内容专业、有趣易学。专注服务互联网工程师快速成为技术高手!

用代码向90后逝去的青春致敬

2018-08-02 08:35 Don Lex


前段时间,腾讯宣布停止乐斗Ⅱ和QQ宠物的运营,停运具体时间节点为:2018年07月05日,停止游戏充值和新用户注册;2018年09月15日,正式停止游戏运营,关闭游戏,停止官方渠道游戏客户端下载,玩家无法登陆游戏;2018年09月30日,游戏官网、论坛、专属客服关闭。


这一消息出来,很多人都表示并不能接受。毕竟对于80~95这一代人来说,QQ宠物是他们成长过程抹不去的存在。





今天也来称蹭一下"热点",都说“陪伴是最长情的告白”,那些陪我们走过年少时光的小游戏,你还记得多少?


可能很多90后都玩过乐斗Ⅱ。但是很遗憾,今天的主角不是它,而是它的兄弟——“Q宠大乐斗”。今天分享的是:如何使用前几天分享的selenium的奇淫巧,让“Q宠大乐斗”自动运行,自动打游戏。




01
具体步骤


第一步:分析链接,因为直接使用网页动画版(也就是上图)的网址的话,会有Flash动画,可能会因为网络的问题,导致延迟,从而影响程序的运行。所以选择直接关注微信公众号“Q宠大乐斗”,从开始游戏的接口进去,这样就可以进入文字版的游戏,减少不必要的网速占用。

第二步:通过审查元素找到相应的元素,使用selenium进行定位控制

第三步:设置定时任务,让游戏脚本每天定时运行,游戏自动化,实现躺赢的最终理想,哈哈 


02

注意事项


  1. 因为等级原因,有一些功能可能对低等级不开放,所以这个游戏需要“私人订制”

  2. 有一些奖励是需要等到了一定的活跃度才可以完领取,所以需要一定的游戏策略,否则就需要在程序中进行多次判断



03

代码书写


因为这个游戏的任务有点多,所以分模块来写比较好,这样逻辑不会乱,代码的可读性也更强一点

登录模块:

通过上图可以找出登录的元素位置,直接使用selenium进行登录操作。

上面代码中的第14行是设置等待。直白一点就是:如果 WebDriver没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常


    (自动登录哦 :-)


其他模块

之前说过,等级不同,任务也不同。所以我这里就放上几个共同的模块。具体的任务看下图


每日奖励模块:


乐斗好友模块:

其他的模块我这里就不放代码了,毕竟等级不一样,代码可能没有通用性。而且主要的方法就是定位元素,前篇推文已经详细介绍了,主要是设置等待时长和注意异常情况的判断处理就可以了。


04

计划任务

具体的计划任务教程,参考:Python与win的完美结合--计划任务。设置好时间,因为这个游戏的宠物是靠体力来进行的并且每天只能进行一次任务,所以每天定时打一次就可以了。





05

最后


今天这个自动打游戏的demo,只是单纯的练习一下selenium操作;当然也顺便回忆一下90后的生活,相信有一部分90后小时候还是会玩过这个游戏的。

可能有人就觉得这游戏有点low(确实有点low),那我只能昧着良心回一句:哥玩的不是游戏,是情怀,懂不懂 

ps:源码→点击这里



[ 若你有优质的文章想与大家分享,欢迎投稿。]


联系方式:
微信(lsm20130823,请备注投稿+姓名+职位)
邮箱(lisy@imooc.com)



本周新课速递

抢先了解


Java仿微信全栈 高性能后台+移动客户端



点击播放



RabbitMQ消息中间件技术精讲



点击播放





 
慕课网 更多文章 从“写好代码”到“设计代码”,设计模式是必经之路 我是怎么把一个项目带崩的 作为50 岁的开发者,面对被裁的命运,我如何绝地求生? @程序员,面试必懂的套路,看完整个人通透多了 专栏 | 凉凉了,Python工程师凭什么拿到这么高薪资?
猜您喜欢 跟随 Google 工程师学习前端开发,是种怎样的体验? 流利说基于 TensorFlow 的自适应系统实践 DaoCloud 与长亮网金战略合作助力企业轻松驾驭 FinTech 浪潮 当程序员一天天老去……哪些人晚景凄凉 clean code style(1)