自动玩一局4399钢琴小游戏

1.思路

a.准备一个自动操作的机器人

b.自动操纵鼠标点击游戏开始

​ b1.鼠标定位到开始按钮那一行(截图软件截到对应坐标)

​ b2.循环点击该行,保证开始按钮被鼠标点击到(游戏能开始)

c.当鼠标点击黑色及其渐变色块时,提示得分(在后台打印得分情况)—>游戏一直执行

当鼠标点击其他色块时,提示游戏结束,输出得分

2.每一步的具体实现过程

2.1 准备一个自动操作的机器人

Robot db=new Robot();

2.2 鼠标点击游戏开始

2.2.1 鼠标定位到开始按钮那一行(截图软件截到对应坐标)

db.mouseMove(x,y);

2.2.2 循环点击该行,保证开始按钮被鼠标点击到(游戏能开始)

//建立一个循环,就四个色块都要被点击到
for(int i=0;i<4;i++) {Thread.sleep(3000);//保证点击的过程能被用户看到robot.mouseMove(x+i*step,y); robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);
}

2.3 点击黑色块及其渐变色块时,得分并记录下来

int temp=x+i*step;
Color c=robot.getPixelColor(temp,y);
//红色值小于30的时候,才代表着黑色块
if(c.getRed()<30) {robot.mouseMove(temp,y);robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);//每点击成功一次,就得1分score++;
}

2.4 当鼠标点击其他色块时,提示游戏结束,输出得分

else {System.out.println("游戏结束");System.out.println("当前得分为:"+score);break;
}

3.常见问题点分析

3.1 为啥在进行点击黑色色块操作外套一层死循环???

解答:因为你要游戏一直自动执行,直到你点击到了其他颜色色块

3.2 为啥当红色值(rgb值)小于30时,代表为黑色色块???

解答:因为在截颜色的过程中,发现黑色以及黑色的渐变色快中的rgb值中的r值(red)一直在30以下波动,而g值(green)和b值(blue)没有变化规律

3.3 rgb值是干嘛的???

解答:rgb值在计算机中是用来表示颜色的,其中r代表red,g代表green,b代表blue,他们的范围都是0-255,当r=0且g=0且b=0时即rgb(0,0,0)代表的是黑色,而rgb(255,255,255)代表的是白色

3.4 如何获取色块的颜色值???

Color c=robot.getPixelColor(temp,y);
//其中(temp,y)为色块的位置

3.5 为啥每次鼠标移动都要加上Thread.sleep(时间)这个方法?

解答:保证鼠标移动的过程中被观察到

3.6 如何获取色块的位置

解答: 第一步 打开微信

​ 第二步 进入色块位置所在的界面

​ 第三步 按下alt+A组合键获取当前色块的位置

3.7 获取的色块位置为啥不精准?

解答:电脑显示的分辨率不为100%

修改电脑分辨率的方法如下所示:

第一步,通过搜索框进入分辨率修改界面

第二步 在缩放与布局,将推荐的125%改成100%

4.源代码

package com.zking.demo;
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;
import java.awt.event.InputEvent;
public class Demo {public static void main(String[] args) throws Exception {// TODO Auto-generated method stubRobot robot=new Robot();Thread.sleep(3000);int step=140;int x=820;int y=800;int score=0;//自动操纵鼠标点击开始,哪一个色块为开始色块未知,所以需要开始色块所占行都点击一遍for(int i=0;i<4;i++) {Thread.sleep(3000);robot.mouseMove(x+i*step,y);   robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);}//自动操纵鼠标玩游戏while(true){Thread.sleep(300);for(int i=0;i<4;i++) {           int temp=x+i*step;Color c=robot.getPixelColor(temp,y);//红色值小于30的时候,才代表着黑色块if(c.getRed()<30) {//判断为黑色色块才移动robot.mouseMove(temp,y);robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);//每点击成功一次,就得1分score++;}else {System.out.println("游戏结束");System.out.println("当前得分为:"+score);break;}}}       }
}

自动玩一局4399钢琴小游戏相关推荐

  1. 小恐龙游戏python_补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~

    原文链接补一波之前说好的用DQN自动玩Chrome浏览器的小恐龙游戏呗~​mp.weixin.qq.com 效果展示 在cmd窗口运行如下命令即可: 模型训练: python TRexRush.py ...

  2. 4399小游戏童年的乐趣,python爬取4399全站小游戏

    大家好,我是辣条. 前言 2021年已到尾巴尖尖了. 今天照镜子,看着镜子中的自己,发现还是跟年轻时一样的"帅",看到头部的时候又发现相比半个月之前的发际线,它好像又往上移了一点点 ...

  3. 4399积分小游戏刷分工具帮助

    2019独角兽企业重金招聘Python工程师标准>>> 应广大网友的要求,及我们在网络上未找到任何4399小游戏刷分相关工具,所以IT娱乐网的工程师经过数周研究终于研究出4399小游 ...

  4. 只需一行Python代码即可玩20几款小游戏

    今天分享一个有趣的 github 项目:https://github.com/kingser/free-python-games,通过该项目,我们只需一行代码即可玩 20 几款小游戏,下面具体来看一下 ...

  5. HTML趣味钢琴小游戏源代码,钢琴琴谱练习小游戏源代码

    HTML趣味钢琴小游戏源代码,钢琴琴谱练习小游戏源代码 完整代码下载地址:HTML趣味钢琴小游戏源代码,钢琴琴谱练习小游戏源代码 index.html <!DOCTYPE html> &l ...

  6. 【作品资料库】scratch作品之和电脑玩石头剪刀纸小游戏

    今天我们分享的这个作品是和电脑玩石头剪刀纸小游戏(源码已经发到百度网盘永久会员群文件中,目录在): 少儿编程课堂 剪刀.石头.布又称"猜丁壳",古老而简单,这个游戏的主要目的是为了 ...

  7. chrome恐龙游戏java_自动玩Chrome浏览器的小恐龙游戏

    开发工具 Python版本:3.6.4 相关模块: opencv-python模块: numpy模块: selenium模块: pillow模块: 以及一些Python自带的模块. 环境搭建 安装Py ...

  8. 【Python小程序】怀旧经典 | 特色玩法,代码版本的钢琴小游戏了解下?初学钢琴,能提高双手协调与反应能力哦~(源码分享)

    导语 哈喽,我是木木子鸭! 最近给大家悄悄的更新了一些关于爬虫的内容呢~有想学习爬虫的小可爱可以学习一整子啦. 今天来给大家写一款界面化的(Tkinter)电子钢琴小程序. ​ 所有文章完整的素材+源 ...

  9. 计算机的神奇小游戏,大多数人玩过的电脑小游戏 你还记得其中的哪几个?

    不知道大家小时候第一个接触到的需要联网的电脑游戏是什么,不过对于绝大多数人来说,这几个游戏经常是能够让我们为之沉迷,甚至废寝忘食的对象. 赛尔号为主的养成类游戏 09年,那时候网吧慢慢开始在中国各地成 ...

最新文章

  1. python【力扣LeetCode算法题库】101-对称二叉树
  2. 使用 NIO 实现 echo 服务器
  3. 子查询返回的值不止一个。当子查询跟随在 =、!=、、=、、= 之后,或子查询用作表达式时,这种情况是不允许的。...
  4. tshark存储数据到mysql_网络分析利器wireshark命令版(2):tshark使用示例
  5. QT次线程连接数据库
  6. Hibernate多列作为联合主键(六)
  7. GB28181协议常见几种信令流程(一)
  8. 图解 Excel 添加数据透视表
  9. EditPlus最新汉化绿色版的下载、破解,以及开发java文件时的一些相关设置操作视频...
  10. 如何把桌面计算机和回收站隐藏,电脑回收站怎么隐藏图标,隐藏我的电脑和回收站...
  11. HBase eclipse开发环境搭建
  12. 第十届蓝桥杯省赛Scratch编程真题解析
  13. 如何给阿里云建站添加网站域名解析???
  14. 18_2Servlet学习笔记
  15. c语言计算输入20个有符号整数,统计正整数,零,负整数的个数.操作,输入20个有符号整数,统计正整数.零.负整数的个数.并分别计算之和...
  16. 体积小性能强悍能吃鸡的电脑主机 NUC8I7HVK
  17. Unity打开电脑本地文件夹选择图片替换
  18. chown与chmod的区别.
  19. 我的Linux(ubuntu)自学笔记分享
  20. iOS初级开发学习笔记:微信充值

热门文章

  1. 在线加工(dnc)的含义为加工过程为外接计算机在线输送程序到机床,自动化制造系统试卷 (2)...
  2. 面试过程:自我介绍-技术面试-项目介绍-职业规划
  3. 运输层:SYN泛洪攻击
  4. 图片加载的框架——glid
  5. 易语言python识别图片验证码_TensorFlow实战:验证码识别 (少样本高精度)
  6. python和c语言哪一个好_python和c语言先学哪个好
  7. java类加载机制为什么双亲委派_[五]类加载机制双亲委派机制 底层代码实现原理 源码分析 java类加载双亲委派机制是如何实现的...
  8. HttpHandler详解
  9. COBOL语言总结(二)
  10. 动态生成word文档的靠谱方式