GO语言,半自动打怪
仅供学习参考,切勿用于商业用途
package mainimport ("fmt""github.com/go-vgo/robotgo""math/rand""time"
)const (taskNum = 7
)type Task struct {Name stringSleepTime1 intSleepTime2 intFunc func()
}func main() {for i := 1; i <= 32; i++ {tasks := []Task{{Name: "第1图",SleepTime1: 3000,SleepTime2: 100,Func: Task1,},{Name: "第2图",SleepTime1: 1,SleepTime2: 1,Func: Task2,},{Name: "第3图",SleepTime1: 1,SleepTime2: 1,Func: Task3,},{Name: "第4图",SleepTime1: 1500,SleepTime2: 80,Func: Task4,},{Name: "第5图",SleepTime1: 1500,SleepTime2: 80,Func: Task5,},{Name: "第6图",SleepTime1: 1500,SleepTime2: 80,Func: Task6,},{Name: "第7图",SleepTime1: 1500,SleepTime2: 80,Func: Task7,},}for i := 1; i <= taskNum; i++ {task := tasks[i-1]fmt.Printf("开始执行任务:%s\n", task.Name)time.Sleep(time.Duration(task.SleepTime1) * time.Millisecond)time.Sleep(time.Duration(rand.Intn(task.SleepTime2)) * time.Millisecond)task.Func()fmt.Printf("任务%s已完成\n", task.Name)}}
}func Task1() {robotgo.MoveClick(367, 270, `left`, true)time.Sleep(2000)robotgo.KeyTap("right")robotgo.MilliSleep(10)robotgo.KeyToggle("right", "down")time.Sleep(6 * time.Second)robotgo.KeyToggle("right", "up")time.Sleep(100)fmt.Printf("第1图通关,")
}func Task2() {robotgo.KeyTap("s")time.Sleep(2 * time.Second)robotgo.KeyTap("a")robotgo.MilliSleep(20)//向下移动3秒向上移动1秒robotgo.KeyToggle("up", "down")time.Sleep(2 * time.Second)robotgo.KeyToggle("up", "up")robotgo.MilliSleep(50)robotgo.KeyTap("g")robotgo.MilliSleep(50)robotgo.KeyTap("w")time.Sleep(9 * time.Second)robotgo.KeyToggle("down", "down")time.Sleep(1 * time.Second)robotgo.KeyToggle("down", "up")robotgo.MilliSleep(50)fmt.Printf("第二图通关,")
}func Task3() {robotgo.MilliSleep(50)robotgo.KeyTap("right")robotgo.MilliSleep(10)robotgo.KeyToggle("right", "down")time.Sleep(2 * time.Second)robotgo.KeyToggle("right", "up")fmt.Printf("进入第3图")robotgo.MilliSleep(50)robotgo.KeyTap("h")time.Sleep(3 * time.Second)time.Sleep(6 * time.Second)robotgo.KeyToggle("up", "down")time.Sleep(2 * time.Second)robotgo.KeyToggle("up", "up")robotgo.MilliSleep(50)robotgo.KeyToggle("down", "down")time.Sleep(1 * time.Second)robotgo.KeyToggle("down", "up")robotgo.MilliSleep(50)robotgo.KeyToggle("right", "down")time.Sleep(2 * time.Second)robotgo.KeyToggle("right", "up")robotgo.MilliSleep(50)fmt.Printf("第3通关")}func Task4() {robotgo.KeyTap("right")robotgo.MilliSleep(50)robotgo.KeyToggle("right", "down")time.Sleep(5 * time.Second)robotgo.KeyToggle("right", "up")robotgo.MilliSleep(50)time.Sleep(20 * time.Second)robotgo.KeyToggle("right", "down")time.Sleep(2 * time.Second)robotgo.KeyToggle("right", "up")robotgo.MilliSleep(50)robotgo.KeyToggle("up", "down")time.Sleep(2 * time.Second)robotgo.KeyToggle("up", "up")robotgo.MilliSleep(50)robotgo.KeyToggle("down", "down")time.Sleep(1 * time.Second)robotgo.KeyToggle("down", "up")robotgo.MilliSleep(50)fmt.Printf("第4图通关")
}func Task5() {//向上移动1秒fmt.Print("****准备进入5图")//向上移动1秒robotgo.KeyTap("right")robotgo.MilliSleep(50)robotgo.KeyToggle("right", "down")time.Sleep(5 * time.Second)robotgo.KeyToggle("right", "up")robotgo.MilliSleep(50)time.Sleep(20 * time.Second)robotgo.KeyToggle("right", "down")time.Sleep(2 * time.Second)robotgo.KeyToggle("right", "up")robotgo.MilliSleep(50)robotgo.KeyToggle("up", "down")time.Sleep(2 * time.Second)robotgo.KeyToggle("up", "up")robotgo.MilliSleep(50)robotgo.KeyToggle("down", "down")time.Sleep(1 * time.Second)robotgo.KeyToggle("down", "up")robotgo.MilliSleep(50)fmt.Printf("第5图通关")
}func Task6() {fmt.Print("****准备进入6图")robotgo.KeyTap("right")robotgo.MilliSleep(50)robotgo.KeyToggle("right", "down")robotgo.KeyToggle("down", "down")time.Sleep(5 * time.Second)robotgo.KeyToggle("right", "up")robotgo.KeyToggle("down", "up")robotgo.MilliSleep(50)robotgo.KeyTap("w")robotgo.MilliSleep(50)robotgo.KeyTap("a")fmt.Print("****进入6图")robotgo.KeyTap("w")time.Sleep(20 * time.Second)fmt.Printf("最后通关1")robotgo.KeyTap("w")time.Sleep(30 * time.Second)fmt.Printf("最后通关2")robotgo.KeyTap("w")time.Sleep(20 * time.Second)fmt.Printf("全图通关")
}func Task7() {fmt.Printf("开始捡完物品")robotgo.KeyTap("v")time.Sleep(3 * time.Second)//修装备//time.Sleep(time.Duration(sleepTime2) * time.Millisecond)//robotgo.KeyTap("s")//time.Sleep(time.Duration(sleepTime2) * time.Millisecond)//robotgo.KeyTap("s")//time.Sleep(time.Duration(sleepTime2) * time.Millisecond)//robotgo.KeyTap("enter")//time.Sleep(1 * time.Second)//捡东西time.Sleep(3 * time.Second)fmt.Printf("第一个图捡完物品")robotgo.MilliSleep(2000)robotgo.MoveClick(10, 10, `left`, true)robotgo.MilliSleep(50)robotgo.MoveClick(10, 10, `left`, true)time.Sleep(2 * time.Second)robotgo.KeyTap("enter")time.Sleep(2 * time.Second)robotgo.KeyTap("shift")robotgo.MilliSleep(50)robotgo.KeyTap("/")robotgo.MilliSleep(50)robotgo.KeyTap("/")robotgo.MilliSleep(50)robotgo.KeyTap("shift")robotgo.MilliSleep(50)robotgo.KeyTap("y")robotgo.MilliSleep(50)robotgo.KeyTap("i")robotgo.MilliSleep(50)robotgo.KeyTap("d")robotgo.MilliSleep(50)robotgo.KeyTap("o")robotgo.MilliSleep(50)robotgo.KeyTap("n")robotgo.MilliSleep(50)robotgo.KeyTap("g")robotgo.MilliSleep(50)robotgo.KeyTap("w")robotgo.MilliSleep(50)robotgo.KeyTap("u")robotgo.MilliSleep(50)robotgo.KeyTap("p")robotgo.MilliSleep(50)robotgo.KeyTap("i")robotgo.MilliSleep(50)robotgo.KeyTap("n")robotgo.MilliSleep(50)robotgo.KeyTap("space")robotgo.MilliSleep(50)robotgo.KeyTap("enter")robotgo.MilliSleep(50)time.Sleep(3 * time.Second)fmt.Printf("第一个图捡完物品")robotgo.MilliSleep(2000)robotgo.MoveClick(1377, 71, `left`, true)robotgo.MilliSleep(50)robotgo.MoveClick(1377, 71, `left`, true)robotgo.MilliSleep(50)robotgo.KeyTap("enter")robotgo.MilliSleep(50)robotgo.KeyTap("shift")robotgo.MilliSleep(50)robotgo.KeyTap("/")robotgo.MilliSleep(50)robotgo.KeyTap("/")robotgo.MilliSleep(50)robotgo.KeyTap("shift")robotgo.MilliSleep(50)robotgo.KeyTap("y")robotgo.MilliSleep(50)robotgo.KeyTap("i")robotgo.MilliSleep(50)robotgo.KeyTap("d")robotgo.MilliSleep(50)robotgo.KeyTap("o")robotgo.MilliSleep(50)robotgo.KeyTap("n")robotgo.MilliSleep(50)robotgo.KeyTap("g")robotgo.MilliSleep(50)robotgo.KeyTap("w")robotgo.MilliSleep(50)robotgo.KeyTap("u")robotgo.MilliSleep(50)robotgo.KeyTap("p")robotgo.MilliSleep(50)robotgo.KeyTap("i")robotgo.MilliSleep(50)robotgo.KeyTap("n")robotgo.MilliSleep(50)robotgo.KeyTap("space")robotgo.MilliSleep(50)robotgo.KeyTap("enter")robotgo.MilliSleep(50)time.Sleep(3 * time.Second)robotgo.MilliSleep(50)robotgo.MoveClick(10, 10, `left`, true)robotgo.MilliSleep(100)robotgo.KeyTap("esc")time.Sleep(1 * time.Second)robotgo.KeyTap("f10")robotgo.MilliSleep(50)robotgo.KeyTap("f10")time.Sleep(3 * time.Second)
}func randInt(min, max int) int {rand.Seed(time.Now().UnixNano())return rand.Intn(max-min+1) + min
}相关文章:
GO语言,半自动打怪
仅供学习参考,切勿用于商业用途 package mainimport ("fmt""github.com/go-vgo/robotgo""math/rand""time" )const (taskNum 7 )type Task struct {Name stringSleepTime1 intSleepTime2 intFunc func() }fu…...
【Java 进阶篇】Java登录案例详解
登录是Web应用程序中常见的功能,它允许用户提供凭证(通常是用户名和密码)以验证其身份。本文将详细介绍如何使用Java创建一个简单的登录功能,并解释登录的工作原理。我们将覆盖以下内容: 登录的基本概念创建一个简单的…...
Vue 菜单导航栏,轮播图
导航菜单栏结构和样式代码实现 一级导航栏 views/HomeView.vue <template><div><Shortcut></Shortcut><Header></Header><div class"inner"><Navigation></Navigation></div><div>我是主页&l…...
讲述为什么要学习Adobe XD以及 Adobe XD下载安装
首先 我们要了解 Adobe XD 是个什么东西 XD是Adobe公司专门开发出来面向交互、界面设计的矢量绘图工具。 然后是 他可以做什么? 最基本的 可以做UI界面设置 所有 手机 平板 电脑等设备的UI界面 我们都可以通过XD完成 还有就是原型设置 我们可以做各种界面图 还有…...
Netty复习:(1)Http server: hello world
一、加依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.72.Final</version></dependency>二、创建自定义的handler package cn.edu.tju.handler;import io.netty.buffer.ByteB…...
【Python 千题 —— 基础篇】加法计算
题目描述 题目描述 编写一个程序,接受用户输入的两个数字,然后计算这两个数字的和,并输出结果。 输入描述 输入两个数字,用回车隔开两个数字。 输出描述 程序将计算这两个数字的和,并输出结果。 示例 示例 ① …...
基于纵横交叉算法的无人机航迹规划-附代码
基于纵横交叉算法的无人机航迹规划 文章目录 基于纵横交叉算法的无人机航迹规划1.纵横交叉搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要:本文主要介绍利用纵横交叉算法来优化无人机航迹规划。 …...
D-Bus:数据类型
D-Bus中描述接口的属性和方法,有其自己定义的一套签名描述方式: 数据类型描述符号对应C++数据类型avector/array数组, ai表示的是vector<int32_t>bboolddouble双精度浮点数iint32_t,32位有符号整数nint16_t,16位有符号整数oobject_path对象路径quint16_t,16位无符号…...
BI零售数据分析,告别拖延症,及时掌握一线信息
在日常的零售数据分析中,经常会因为数据量太大,分析指标太多且计算组合多变而导致数据分析报表难产,零售运营决策被迫拖延症。随着BI数据可视化分析技术的发展,智能化、可视化、自助分析的BI数据分析逐渐成熟,形成一套…...
[BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
再补完这个就基本上完了. crypto RSA Variation II Schmidt-Samoa密码系统看上去很像RSA,其中Npqq, 给的eN给了d from secret import flag from Crypto.Util.number import *p getPrime(1024) q getPrime(1024)N p*p*qd inverse(N, (p-1)*(q-1)//GCD(p-1, q-1))m bytes…...
论文范文:论基于架构的软件设计方法及应用
注意:范文只适用于帮助大家打开写作思路,并不能作为素材直接用于平时练习、考试中。考试中直接使用范文的素材,会有被认定为雷同卷的风险。 摘要: 2022年4月,本人所在单位计划研发生态集装箱管理控制平台项目。该平台主要用于与现有公司生态集装箱产品做对接,达到远程控制…...
C语言 指针进阶笔记
p和*p: 如图,p是指针,指针存放着地址,打印出来应该是数组的值 *p是指针里里面的元素 #include<stdio.h> int main() {int a1;int b2;int c3;int p[3]{a,b,c};printf("%d",*p); return 0; } 那么现在的打印结果应该为数组的…...
数据库认证 | Oracle OCP好考吗
数据库对于很多技术人员来说都不陌生,但是你想深入了解的话,那么考个证书也许就是一个不错的选择。 如果能考个Oracle OCP认证的话,那也确实不错。那么Oracle OCP好考吗?下面我们就来了解一下吧。 01 Oracle OCP好考吗 OCP考试还…...
处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术
处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话&am…...
解决计算机msvcp120.dll文件丢失的5种方法,亲测有效
在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“msvcp120.dll丢失”。这个错误提示可能会给我们带来很大的困扰,影响我们的正常使用。本文将详细介绍msvcp120.dll丢失的原因、解决方法以及预防措施,帮助大家更好地…...
Python selenium交互
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium selenium可以模拟用户点击事件,以及控制浏览器前进,后退等操作。 下面是一个模拟百度搜索,点击下一页,控制浏览器后退,…...
基本微信小程序的体检预约小程序
项目介绍 我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,体检预约系统小程序被用户普遍使用,为方便用户…...
FHE 的高精度算术:BGV-big、BFV-big
参考文献: [NL11] Naehrig M, Lauter K, Vaikuntanathan V. Can homomorphic encryption be practical?[C]//Proceedings of the 3rd ACM workshop on Cloud computing security workshop. 2011: 113-124.[GC15] Geihs M, Cabarcas D. Efficient integer encoding…...
基于SpringBoot的在线笔记系统
技术介绍 🔥采用技术:SpringSpringMVCMyBatisJSPMaven 🔥开发语言:Java 🔥JDK版本:JDK1.8 🔥服务器:tomcat 🔥数据库:mysql 🔥数据库开发工具&…...
UE4 使用材质后期 制作玻璃有雨效果
效果展示,其实这是一个动画效果 以上为所有逻辑 拿到TexCoord给到Panner,Time和Speed都是通过下面计算而来,后面讲,再拿到时间和速度值过后,加上扰动值,最后取G值,因为雨事从上而下的动…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...
EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
云原生安全实战:API网关Kong的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关(API Gateway) API网关是微服务架构中的核心组件,负责统一管理所有API的流量入口。它像一座…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
