当前位置: 首页 > news >正文

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语言,半自动打怪

仅供学习参考&#xff0c;切勿用于商业用途 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应用程序中常见的功能&#xff0c;它允许用户提供凭证&#xff08;通常是用户名和密码&#xff09;以验证其身份。本文将详细介绍如何使用Java创建一个简单的登录功能&#xff0c;并解释登录的工作原理。我们将覆盖以下内容&#xff1a; 登录的基本概念创建一个简单的…...

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公司专门开发出来面向交互、界面设计的矢量绘图工具。 然后是 他可以做什么&#xff1f; 最基本的 可以做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 千题 —— 基础篇】加法计算

题目描述 题目描述 编写一个程序&#xff0c;接受用户输入的两个数字&#xff0c;然后计算这两个数字的和&#xff0c;并输出结果。 输入描述 输入两个数字&#xff0c;用回车隔开两个数字。 输出描述 程序将计算这两个数字的和&#xff0c;并输出结果。 示例 示例 ① …...

基于纵横交叉算法的无人机航迹规划-附代码

基于纵横交叉算法的无人机航迹规划 文章目录 基于纵横交叉算法的无人机航迹规划1.纵横交叉搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用纵横交叉算法来优化无人机航迹规划。 …...

D-Bus:数据类型

D-Bus中描述接口的属性和方法,有其自己定义的一套签名描述方式: 数据类型描述符号对应C++数据类型avector/array数组, ai表示的是vector<int32_t>bboolddouble双精度浮点数iint32_t,32位有符号整数nint16_t,16位有符号整数oobject_path对象路径quint16_t,16位无符号…...

BI零售数据分析,告别拖延症,及时掌握一线信息

在日常的零售数据分析中&#xff0c;经常会因为数据量太大&#xff0c;分析指标太多且计算组合多变而导致数据分析报表难产&#xff0c;零售运营决策被迫拖延症。随着BI数据可视化分析技术的发展&#xff0c;智能化、可视化、自助分析的BI数据分析逐渐成熟&#xff0c;形成一套…...

[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: 如图&#xff0c;p是指针&#xff0c;指针存放着地址&#xff0c;打印出来应该是数组的值 *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好考吗

数据库对于很多技术人员来说都不陌生&#xff0c;但是你想深入了解的话&#xff0c;那么考个证书也许就是一个不错的选择。 如果能考个Oracle OCP认证的话&#xff0c;那也确实不错。那么Oracle OCP好考吗&#xff1f;下面我们就来了解一下吧。 01 Oracle OCP好考吗 OCP考试还…...

处理大数据的基础架构,OLTP和OLAP的区别,数据库与Hadoop、Spark、Hive和Flink大数据技术

处理大数据的基础架构&#xff0c;OLTP和OLAP的区别&#xff0c;数据库与Hadoop、Spark、Hive和Flink大数据技术 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&am…...

解决计算机msvcp120.dll文件丢失的5种方法,亲测有效

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“msvcp120.dll丢失”。这个错误提示可能会给我们带来很大的困扰&#xff0c;影响我们的正常使用。本文将详细介绍msvcp120.dll丢失的原因、解决方法以及预防措施&#xff0c;帮助大家更好地…...

Python selenium交互

视频版教程&#xff1a;一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium selenium可以模拟用户点击事件&#xff0c;以及控制浏览器前进&#xff0c;后退等操作。 下面是一个模拟百度搜索&#xff0c;点击下一页&#xff0c;控制浏览器后退&#xff0c…...

基本微信小程序的体检预约小程序

项目介绍 我国经济迅速发展&#xff0c;人们对手机的需求越来越大&#xff0c;各种手机软件也都在被广泛应用&#xff0c;但是对于手机进行数据信息管理&#xff0c;对于手机的各种软件也是备受用户的喜爱&#xff0c;体检预约系统小程序被用户普遍使用&#xff0c;为方便用户…...

FHE 的高精度算术:BGV-big、BFV-big

参考文献&#xff1a; [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的在线笔记系统

技术介绍 &#x1f525;采用技术&#xff1a;SpringSpringMVCMyBatisJSPMaven &#x1f525;开发语言&#xff1a;Java &#x1f525;JDK版本&#xff1a;JDK1.8 &#x1f525;服务器&#xff1a;tomcat &#x1f525;数据库&#xff1a;mysql &#x1f525;数据库开发工具&…...

UE4 使用材质后期 制作玻璃有雨效果

效果展示&#xff0c;其实这是一个动画效果 以上为所有逻辑 拿到TexCoord给到Panner&#xff0c;Time和Speed都是通过下面计算而来&#xff0c;后面讲&#xff0c;再拿到时间和速度值过后&#xff0c;加上扰动值&#xff0c;最后取G值&#xff0c;因为雨事从上而下的动&#xf…...

OpenClaw技能扩展:GLM-4.7-Flash驱动Markdown文档自动整理

OpenClaw技能扩展&#xff1a;GLM-4.7-Flash驱动Markdown文档自动整理 1. 为什么需要文档自动化整理 作为一个长期使用Markdown写作的技术博主&#xff0c;我的文档目录早已变成了"数字坟场"。上周试图寻找半年前写的Docker网络配置笔记时&#xff0c;面对notes_20…...

基于GPT-5.4的本科毕业论文智能写作实战指南:从实验数据到完稿的全流程教程

摘要&#xff1a; 对于已完成实验并手握参考文献的大四学生而言&#xff0c;将 months of experiments 转化为符合学术规范的毕业论文往往是最具挑战性的环节。本教程系统介绍如何利用GPT-5.4这一先进的大语言模型&#xff0c;通过科学的提示词工程&#xff08;Prompt Engineer…...

Tailwind CSS在Vue3+Vite项目中的实战应用:从零到响应式按钮

Tailwind CSS在Vue3Vite项目中的实战应用&#xff1a;从零到响应式按钮 如果你正在使用Vue3和Vite构建现代Web应用&#xff0c;却对传统CSS的维护成本感到头疼&#xff0c;那么Tailwind CSS可能会成为你的新宠。这个实用优先的CSS框架彻底改变了我们编写样式的方式——不再需要…...

从‘饱和度’到‘肤色正常’:深入理解CCM色彩校正矩阵的调试逻辑与参数关系

从‘饱和度’到‘肤色正常’&#xff1a;深入理解CCM色彩校正矩阵的调试逻辑与参数关系 在数字图像处理领域&#xff0c;色彩校正矩阵&#xff08;Color Correction Matrix&#xff0c;CCM&#xff09;的调试一直是工程师们面临的技术难点之一。不同于简单的参数调整&#xff0…...

从‘知识冲突’到‘对齐’:图解ProGrad如何让CLIP微调既专又通

ProGrad&#xff1a;用向量几何重新思考多模态模型的微调艺术 想象一下&#xff0c;你正在训练一位精通多国语言的老教授学习一门新方言。如果完全放任他自由发挥&#xff0c;可能会丢失原有的语言体系&#xff1b;如果限制太多&#xff0c;又无法适应新语境。这正是CLIP等预训…...

OpenClaw技能开发入门:基于nanobot定制个人自动化模块

OpenClaw技能开发入门&#xff1a;基于nanobot定制个人自动化模块 1. 为什么需要自定义OpenClaw技能&#xff1f; 去年夏天&#xff0c;当我第一次接触OpenClaw时&#xff0c;最让我惊喜的不是它预置的几十种技能&#xff0c;而是它允许开发者像搭积木一样自由扩展功能。作为…...

Harmonyos应用实例233:数独逻辑教练 (综合与实践)

5. 数独逻辑教练 (综合与实践) 功能介绍: 提供一个 4x4 或 6x6 的入门级数独游戏,专为训练逻辑推理设计。系统随机生成题目,用户点击格子填入数字。如果填入错误,系统会给予红色高亮提示。包含“提示”功能,自动填入一个正确数字,帮助学生理解排除法和唯一性原理。 //…...

AI芯片算力揭秘:从INT8到FP16,如何正确理解不同精度的TOPS值?

AI芯片算力揭秘&#xff1a;从INT8到FP16&#xff0c;如何正确理解不同精度的TOPS值&#xff1f; 当你在选购AI加速卡时&#xff0c;是否曾被厂商宣传的"200TOPS算力"搞得晕头转向&#xff1f;作为在边缘计算部署过数十个模型的工程师&#xff0c;我必须告诉你一个残…...

保姆级教程:在MounRiver Studio上为CH32V307配置FreeRTOS与LwIP网络栈

从零构建CH32V307物联网网关&#xff1a;FreeRTOS与LwIP全流程实战指南 当一块搭载RISC-V内核的CH32V307开发板遇上实时操作系统与轻量级TCP/IP协议栈&#xff0c;会碰撞出怎样的火花&#xff1f;本文将带你完整经历从开发环境搭建到网络功能验证的全过程。不同于简单的代码移植…...

Release It! 终极自动化发布工具:5分钟配置完整版本管理流程

Release It! 终极自动化发布工具&#xff1a;5分钟配置完整版本管理流程 【免费下载链接】release-it &#x1f680; Automate versioning and package publishing 项目地址: https://gitcode.com/gh_mirrors/re/release-it Release It! 是一款强大的自动化发布工具&…...