近来在折腾selenium自动化, 感觉配合爬虫很有意思, 大多数以前难以模拟登录的网站都可以爬了,折腾了这么久,于是想自动玩个2048游戏!嘿嘿, 我是一个不擅长玩游戏的人, 以前玩2048就经常得了很低的分,每每想起都”痛心疾首”, 所以我打算拿2048开刀, 通过几种方式, 让程序帮我玩!

环境: python 3.5

用到的库: re, random, time, selenium

2048网页版: http://2048.oubk.com

本篇用到了selenium,运行前需要提前安装selenium和chromedriver的驱动

先看一下效果图

第一步: 浏览网页确定需求

可以发现, 此网页能注册登录, 还有各个时间段的积分排行榜, 游戏的玩法是按键盘的方向键,在游戏结束后, 会弹出这么一个框

于是我在想, 这个页面能否自动成功登录和退出呢,还希望把4*4方块转为对应的矩阵列表,并且在游戏结束后, 能自动点击再玩一次

试试看说不定可以呢,我们一起来分析一下吧.

第二步: 按需分析目标网站

需求1:登录指定账号

进入开发者模式定位到”登录”这元素:

selenium库提供了很多获取网页中元素的方法, 个人喜欢通过XPath的方式来获取, 于是复制其xpath路径

在点击登录后, 会有一个弹窗:

采用同样的方式, 获取账号输入框 密码输入框 登录 的xpath路径

需求2:再玩一次

当游戏结束时, 会有此提示

图片上传失败

重试

同样的, 也获取 再玩一次 的xpath的路径

需求_3: 获取矩阵

接下来, 我们需要将4*4方块转为矩阵, 先定位到任意的一个数字方块

容易发现, 第一个数字是方块上的数值, 之后数字为: 列 行, 后面若还接英文串, 则说明此方块是新生成或新合并出的.采用通过正则获取

image

需求_4: 模拟方向键

在selenium中, 通过send_keys()方法, 把键值发送至元素

需要注意的是, 方向键是发送给body元素, 而不是4**4方块所在的的div

第三步: 如何玩游戏

方法一:随机移动

在游戏未结束前, 上下左右随意移动, 分数什么的, 就随缘吧

方法二:每次最优

在游戏未结束前, 每次移动, 都选择得分最高的方向,这个比较复杂(具体可以看文末的源码)

第四步: 运行程序看结果

1).用js代码注册

借用来自网上的一段用js进行post提交的代码, 成功实现了注册

2).开始玩游戏

我写了个分析函数, 传入次数, 在游戏结束后输出平均分

次数我设置为3, 执行程序,就会出现开头的效果图.

想要获得源码的同学可以私信我,私信关键词:源码,源代码!

GitHub最新编程语言排行榜已出,我们来看下最新消息

最流行语言:JS 还第一,Python 反超 Java

GitHub Universe 是 GitHub 的年度盛会,今年10月10-12日,GitHub Universe 大会在旧金山召开。同时,GitHub 也在其官网发布了 2017 年年度数据报告 —— GitHub Octoverse 报告。

每年 GitHub 都会推出“Octoverse”报告,其中列出了一些年度的数据,包括其网站中最受欢迎的编程语言、开源项目等。今年的数据让人眼前一亮,我们不妨关注一下。

整体数据:2400 万用户

150 万组织

6700 万 Repo

130 万学生开发者

自 2016 年 9 月,10 亿 Commit

自 2016 年 9 月,2530 万活跃项目

自 2016 年 9 月,1250 万活跃 Issue

自 2016 年 9 月,新增了 670 万开发者

自 2016 年 9 月,新增了 45.1 万个组织入驻 GitHub

自 2016 年 9 月,120 万人提交了他们的第一个 Pull Request

自 2016 年 9 月,410 万人创建了他们的第一个 Repo

19.1 万人 star 或 fork 了项目但没有提交代码

2016 年 9 月,130 万新 Pull Request ,包括 Linus Torvald 的第一个 GitHub Pull

Request:https://github.com/Subsurface-divelog/subsurface/pull/155

合并了 100,000,000 次 Pull Request

关闭了 68,800,000 个 Issue

不包括框架和语言,下面的标签被使用得最多

machine-learning

game

iOS

API

blog

website

deep-learning

library

arduino

plugin

database

bot

接着看一下

2017 GitHub 上最受欢迎的前 15 门语言

可以看到,Python 已代替 Java 从去年的第三突进了第二,相比去年它新增了 40% 的 Pull Request。越来越多开发者在感慨“人生苦短” 了?

Java 则被挤下到第三位,不过 Java 9 刚发布不久,而且它的模块化特性深受开发者喜爱,霸主地位还是很难撼动的。

排名第一的依然是 JavaScript,而且远甩其他语言好几条街。联想到近几年前端技术的火热发展,所以并没有太大意外。

排名前十五的语言(按先后顺序):JavaScript、Python、Java、Ruby、PHP、C++、CSS、C#、Go、C、TypeScript、Shell、Swift、Scala、Objective-C

被 fork 最多的前十个项目

贡献者最多的前十个项目

review 最多的前十个项目

discuss 最多的前十个项目

上面四个排行榜,TensorFlow 在其中三个都留下了自己的名字,人工智能技术越来越多地被关注,经历了被称为“人工智能元年”的2016年,人工智能在2017年也迎来了更大的发展

文章转载自:菜鸟学Python,另外,在这里给大家推荐一个学习交流Q-un,719-139-688,只是希望大家能够一起学习交流,虽然不能保证每个人都满意,但是我也会尽我所能帮助大家的学习。

使用python开发网页游戏_不敢想!不敢想!我用Python自动玩转2048游戏相关推荐

  1. python2048游戏的未来展望_不敢想!不敢想!我用Python自动玩转2048游戏

    近来在折腾selenium自动化, 感觉配合爬虫很有意思, 大多数以前难以模拟登录的网站都可以爬了,折腾了这么久,于是想自动玩个2048游戏!嘿嘿, 我是一个不擅长玩游戏的人, 以前玩2048就经常得 ...

  2. python自动玩游戏_超牛!用Python自动玩转2048游戏

    本篇作者:BlueDamage 近来在折腾selenium自动化, 感觉配合爬虫很有意思, 大多数以前难以模拟登录的网站都可以爬了,折腾了这么久, 于是想自动玩个2048游戏!嘿嘿, 我是一个不擅长玩 ...

  3. python开发企业管理平台_我的第一个python web开发框架(34)——后台管理系统权限设计...

    框架底层和接口终于改造完成了,小白再次找到老菜. 小白:老大,上次你对后台权限系统简单的讲了一下,我一点头绪都没有,现在有空完整的说一说吗? 老菜:说到权限系统,要讲明白真不容易,权限系统并不是越复杂 ...

  4. python开发环境对比_【整理】各种Python的IDE(集成开发环境)的总结和对比 | 在路上...

    背景 之前已经写帖子,解释了关于Python的开发环境: 但是,对于Python的IDE方面,介绍的不是很多. 此处,专门整理了,各种Python的IDE. 各种Python的IDE PyScript ...

  5. python 提取网页正文_小苹果来科普 | 关于python爬虫的那些事儿

    python爬虫--抓取小说 爬虫=Python? 网络爬虫是什么? 不好意思,这些网上查的到的东西我不愿意打字啊,请移步百度百科-- 使用python抓取网页信息少不了一些有关html的知识 首先要 ...

  6. python开发office插件_看完这篇Python操作PPT总结,从此使用Python玩转Office全家桶就没有压力了!...

    一.导读 大家好,今天依旧是Python办公自动化基础系列,在之前我们分别详细讲解了 今天本文将基于第三方库pptx,详细讲解如何使用Python操作Office全家桶最后一位--PPT. 二.安装 ...

  7. 基于百度地图的python开发服务端_百度地图api用python行吗

    ?ak=E4805d16520de693a3fe707cdc962045 &callback=renderReverse &location=39.983424,116.322987 ...

  8. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  9. github怎么搜索开源的代码_5.2.PYTHON开发利器之使用VS Code+GitHub进行python开源项目开发...

    上一节介绍了使用vscode+Git进行python程序版本控制,详见5.1.PYTHON开发利器之使用VS Code+Git进行python程序版本控制 0.前言 GitHub是目前最大的开源代码托 ...

最新文章

  1. 论设计,需求和编码三者的关系
  2. 2021年微信视频号生态趋势调查报告
  3. linux比较小数大小,带有小数点的数值对比大小
  4. Python学习笔记-基本语法
  5. 选中连线的话,整个连线会显示在一个框里面
  6. 让textbox紧贴IME
  7. 第六章 who can see what
  8. 【XenApp 6.5体验】SmartAuditor 1.3 Policy Console策略控制台打开报401错误的解决办法...
  9. 单片机:DS1302时钟
  10. 基于FPGA的SDRAM控制器设计(一)
  11. 单词测试通关学英语的软件,推荐5款最火的英语学习类app
  12. [转]用python来开发webgame服务端(3)
  13. mzy git学习,删除文件(三)
  14. 插入数据 java_JAVA插入数据笔记
  15. 与Lucene 4.10配合的中文分词比较
  16. idea 注释格式化之后回到同一行
  17. Chrome浏览器常用插件记录
  18. linux创建ps格式文件怎么打开,ps文件扩展名,ps文件怎么打开?
  19. Linux下利用ssh远程文件传输 传输命令 scp
  20. 力扣(LeetCode)904. 水果成篮(C语言)

热门文章

  1. redis 4.0.9 centos7 双机集群安装
  2. 系统垃圾清理.cmd
  3. log4j自定义配置文件(SpringMVC项目)
  4. php 安装rabtmq amqp 扩展
  5. Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析【转】...
  6. windows下memcache的安装总结
  7. DecExpress 帮助网站
  8. (ZT)在日本市场推广 iPhone 应用的经验
  9. 动态规划——矩阵中的最短路径长度
  10. Crusaders Quest ZOJ - 3983 构造|思维