2048
编写一个程序,打开 https://play2048.co/
上的游戏,不断发送上、右、下、左按键,自动玩游戏。

import requests
from selenium import webdriver
from selenium.webdriver. common.keys import Keys
browser=webdriver.Firefox()

进入游戏页面

browser.get('https://play2048.co/ ')

找到重新开始按钮,点击

browser.find_element_by_class_name('restart-button').click()

html_elem就是整个html页面元素
获取到html_elem以便于通过Keys模拟键盘

html_elem=browser.find_element_by_tag_name('html')
import random

获取到当前分数,用来判断是否游戏结束。
因为获取不到游戏结束的标志所有智能通过分数来判断(如果哪位大佬有方法欢迎留言告诉我)。
判断方法:
is_over_number设置初始值为8,old_sorce(一次操作前的分数)和new_sorce(一次操作后的分数)随便设置两个不等的初始值
每次循环在操作前判断old_sorce和new_sorce是否相等,如果出现new_sorce= =old_sorce的情况is_over_number减一(一次移动操作后分数可能由多种原因引起,游戏结束、没有方块合并、获取到未更新的信息等),如果之后的循环中发现new_sorce!=old_sorce则证明游戏尚未结束(之前new_sorce==old_sorce的情况不是由柚子结束引起的)则把is_over_number还置为8。
直到new_sorce连续等于old_sorce8次,认为游戏结束。

ps:为什么是8?这只是随意一个数,如果太小则可能会出现误判游戏结束,如果太大则在游戏结束后有较大的延迟。
循环次数也可以随意设置,如果一次循环之后游戏没有结束,则输出game is continue,再次执行下面那一大块的代码即可。

sorce_elem=browser.find_element_by_class_name('score-container')

导入时间模块用于在每次循环中等待0.1秒,如果没有等待可能会出现获取到元素信息是未更新的。

import time
old_sorce=-1
new_sorce=0
is_game_over=False
is_over_number=8
for i in range(100):time.sleep(0.1)new_sorce=sorce_elem.text#如果连续8次分数都相同,基本上可以认为游戏结束if new_sorce==old_sorce:is_over_number=is_over_number-1#print('old_sorce is '+old_sorce)#print('new_sorce is'+new_sorce)else:#由于可能某次移动不会带来分数增加,这样可能贵导致误判为游戏结束#因此,如果之后再次出现分数增加,则将判断数重新置为8is_over_number=8if is_over_number<=0:is_game_over=Trueprint('now the sorce is %s' % (new_sorce))breakold_sorce=sorce_elem.textn=random.randint(1,4)print(n)if n==1:html_elem.send_keys(Keys.UP)continueif n==2:html_elem.send_keys(Keys.RIGHT)continueif n==3:html_elem.send_keys(Keys.DOWN)continueif n==4:html_elem.send_keys(Keys.LEFT)continueif is_game_over:print('game over')
else:print('game is continue')
now the sorce is 1036
game over

自动玩2048(随机数)相关推荐

  1. 使用python开发网页游戏_不敢想!不敢想!我用Python自动玩转2048游戏

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

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

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

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

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

  4. 牛逼啦!20行Python代码让程序自动玩“合成大西瓜”!

    最近的时间里,想必大家都被"合成大西瓜"这个游戏刷屏,无论是微博,还是B站,乃至是微信公众号,都有很多博主和up主们推荐. 老规矩,需要打包好的软件关注小编,QQ群:7211953 ...

  5. 【python教程入门学习】Python实现自动玩贪吃蛇程序

    这篇文章主要介绍了通过Python实现的简易的自动玩贪吃蛇游戏的小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学一学 实现效果 先看看效果 这比我手动的快多了,而且是单机的,自动玩没惹 ...

  6. 我的名片能运行Linux和Python,还能玩2048小游戏,成本只要20元

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 猜猜它是什么?印着姓名.职位和邮箱,看起来是个名片.可是右下角有芯片,看起来又像是个PCB电路板. 其实它是一台超迷你的ARM计算机,不仅 ...

  7. 代码全解:Python实现自动玩贪吃蛇程序

    录 实现效果 代码 实现效果 先看看效果 这比我手动的快多了,而且是单机的,自动玩没惹骂我,哈哈 ,多人游戏整个自动玩会被骂死~ 代码 没装软件的先安装一下软件,没装模块的安装一下pygame模块. ...

  8. python神经网络训练玩游戏_python – 如何训练神经网络来玩2048游戏?

    我想训练神经网络玩2048游戏.我知道NN对于像2048这样的状态游戏来说不是一个好选择,但是我想要实现NN将像经验丰富的人类一样玩游戏,即仅在三个方向上移动游戏. 但由于我们不知道有效输出,我无法弄 ...

  9. python模拟app抢号_使用python编程自动玩手游

    我们在玩手游的时候,会发现手游中有些步骤总是需要重复玩,每天都要重复,比如重复做日常任务啥的,一直肝个不停,但是其实很多东西都是固定玩法了,但是就是需要你机械的重复,我就没见过什么手游是不肝的,就算自 ...

最新文章

  1. 解读万方学术检索——SimCSE、Sentence-BERT…
  2. mysql only_full_group_by报错的问题(转)
  3. U3D 动画帧事件问题
  4. 让小程序在自有App中启动的技术来了:mPaaS小程序架构深度解析
  5. 【object-c基础】Object-c基础之三:面对对象开发@interface,@implementation
  6. Pytorch基础(八)——正则化
  7. openldap 中文乱码问题
  8. 4月第3周业务风控关注 | 文化部再次审查直播和游戏产品,已下架4939款直播应用...
  9. 20191130每日一句
  10. Eclipse下创建Hibernate工程
  11. vscode安装 Fira Code 编程字体,编程符号更精致美观
  12. 云迁移实践:VMware虚拟机迁移到AWS
  13. win7 修改html文件图标,win7系统html文件图标变成空白的解决方法
  14. 寒衣节的由来和习俗,你知道吗?
  15. 表单设计工具和报表工具
  16. 记录下配置腾讯云服务器的过程
  17. QGis二次开发基础 -- 构建图层管理器
  18. 如何使用Smartproxy运行无限的运动鞋机器人任务
  19. Proteus使用教程详细入门版(适用于 MCS-51等)
  20. 山东大学计算机学院交叉,计算机学院交叉研究中心硕士研究生王业超获 CADGraphics 最佳论文奖...

热门文章

  1. 网络监控工具 Android,监控宝(网站监控工具)
  2. 从用户体验谈Zabbix与监控宝的差异和互补
  3. 性能优化--从Json过度到FlatBuffers的数据传输(详细)
  4. 【已解决】Could not convert incoming message with content-type [application/x-java-serialized-object]Exec
  5. Unsupervised Action Segmentation by Joint Representation Learning and Online Clustering_CVPR 2022理解速
  6. uusee花4000万买个奥运转播权
  7. 练练手:建立一个形状类Shape作为基类,派生出圆类Circle和矩形类Rectangle,求出面积并获取相关信息。
  8. Kotlin之美——DSL篇 和 如何让你的回调更具Kotlin风味
  9. windchill交流第三篇:Windchill中的事件监听
  10. android广告植入