打地鼠 Python 脚本(无需设置,速度最快)

0 点赞
Farmer Against Potatoes Idle
转载

这是一个用Python3编写的机器人程序,用于自动游玩那款有名的打土豆小游戏。它在每局游戏中能以100%的准确率点击350-450个土豆。该程序可以在闲置时运行,并且会在准备就绪后自动开始新的一局游戏。 工作原理 - 重要提示 代码已针对1920x1080屏幕分辨率进行设置,游戏窗口必须最大化(非全屏模式),且Windows 10任务栏必须位于底部。否则,你需要手动设置坐标,这在手动设置部分有非常简单的说明。

安装Python 下载: 首先需要安装Python。如果你不熟悉Python,它是一种易于使用且用途广泛的编程语言,其脚本保存为“.py”文件,可以通过命令终端(也称为“cmd”)运行。在Windows搜索栏中输入“cmd”并按回车键即可打开“cmd”。 从官方网站下载Python。 安装过程中,请确保勾选“Add python 3.”。将x添加到PATH环境变量,完成后重启电脑。通过在Windows搜索栏输入cmd打开命令提示符,在命令行中输入python并按回车键来验证安装。如果能看到三个>>>,则安装成功。现在可以输入quit()退出Python,或者直接关闭并重新打开控制台,此时不应再看到>>>。 最后需要安装PyAutoGUI模块,运行以下命令:pip install pyautogui。如果在安装模块时遇到任何错误,请按照以下说明操作。可选但强烈建议: 如果未正确添加PATH,虽然这是可选步骤,但添加PATH能节省时间。若未添加PATH,运行脚本时必须输入完整文件地址,例如:“C:/Users/你的用户名/Desktop/script_name.py”,而不是直接输入“script_name.py”。 如果你希望将脚本文件“script_name.py”保存在桌面(或其他文件夹),而非命令提示符默认文件夹,请查看相关指南了解如何更改命令提示符默认文件夹,并将其设置为桌面(C: Users 你的用户名 Desktop)或其他你想要的位置。如果你已安装Python和PyAutoGUI,现在就可以复制粘贴脚本了。 脚本(复制粘贴以下内容) 完成Python安装后,你需要在桌面上创建一个新文件,将其命名为类似“whack.py”的名称。无法翻译的内容已删除截图(区域=(场景截图角落X, 场景截图角落Y, 场景截图宽度, 场景截图高度)) #截图.保存("screenshot1.png") #如果想查看截图进行测试,移除本行第一个"#"(保存截图会占用时间并中断自动点击) 对于y在范围(顶部边界到马桶, 场景截图高度, 马桶到马桶Y)内循环: #3行 对于x在范围(左侧边界到马桶, 场景截图宽度, 马桶到马桶X)内循环: #5列 如果截图.获取像素((x,y))[0] > 200: #如果是棕色或金色,点击 点击(x + 场景截图角落X,y + 场景截图角落Y) 时间.睡眠(1 / 游戏帧率) 定义主函数(): 循环: #检查游戏是否可以开始 截图 = 点击库无法识别或无法翻译,已删除。如果你正确保存了文件,现在它应该是一个Python文件,由Python图标标识。不要打开它,否则脚本会在你的桌面上启动。现在查看下面的“使用方法”部分。 使用方法 当你在桌面或任何你想要的位置有了脚本文件后,打开“命令提示符”。如果你已按照上述所有说明操作,请跳至“启动脚本”。如果你没有将命令提示符的默认文件夹设置为桌面(在上述可选部分已说明),则必须通过输入以下命令导航到桌面: cd C: Users "YourName" Desktop 现在你已位于桌面文件夹,会看到类似如下内容:

启动脚本 要启动脚本,你必须打开打地鼠窗口和命令提示符窗口,将终端窗口调小,放在屏幕右半部分的任意位置,然后输入“whack.py”,操作方式如图所示。

现在要启动它,只需按回车键,但在这之前,请阅读以下内容。 如果脚本没有点击到正确的位置,或者运行出现异常,请检查手动设置。 关闭脚本和紧急退出: 要关闭Python脚本,你需要点击“cmd”窗口并按下CTRL+C,或者直接关闭终端。 我没有在代码中添加任何“退出”按键,因为这会降低脚本速度。如果你想在点击过程中停止脚本,只需在屏幕上移动鼠标,当鼠标触碰到屏幕角落时,脚本将停止点击。之后,请关闭脚本,因为这只能暂时停止自动点击一分钟。 脚本已启动,接下来该做什么?现在只需让它运行,它会检测游戏何时可以启动,然后按下开始键,接着玩游戏,之后会再次回到检测何时可以再次游玩的状态。记住,使用完毕后在命令提示符中输入CTRL+C来关闭它。 手动设置 如果脚本未能正常工作,你可能需要手动设置屏幕坐标,这大约需要15分钟,但绝对值得。 首先,你需要一个“工具”来获取坐标。新建一个名为“coordinates.py”的文件,用记事本打开并粘贴以下内容: import pyautogui pyautogui.displayMousePosition() 这将用作收集手动设置所需坐标的工具,现在双击打开该文件,你应该能在终端上看到鼠标当前坐标,使用此功能获取并测量图像上的坐标。 完成所有测量后,替换代码中【# Variables to modify #】行下方的值。

变量: 1. sceneScreenshotCornerX = 主游戏屏幕左上角的X坐标 2. sceneScreenshotCornerY = 主游戏屏幕左上角的Y坐标 3. sceneScreenshotWidth = 主游戏屏幕宽度(像素) 4. sceneScreenshotHeight = 主游戏屏幕高度(像素) 5. leftBorderToToilet = 主游戏屏幕左边界到土豆检测点的距离(像素) 6. topBorderToToilet = 主游戏屏幕上边界到土豆检测点的距离(像素) 7. toiletToToiletX = 第一行/第一列的土豆检测点到第一行/第二列检测点的距离(像素) 8.toiletToToiletY = 第一行第一列的土豆检测点到第二行第一列检测点的距离(像素) 在此处取“9”右侧红线内的任意一点。 9. startScreenshotCornerX = 该点的X坐标 9. startScreenshotCornerY = 该点的Y坐标 在此处取开始按钮内的任意一点 10. startButtonX = 该点的X坐标 10. startButtonY = 该点的Y坐标 若对任何变量有疑问,请查看图像。 详细说明: 通过这些坐标,你将设置一个【主框架】,这是脚本主要工作的屏幕区域。点1和点2包含此主框架左上角的坐标,点3包含主框架的宽度,即从左边界到右边界的像素距离,而点4包含主框架的高度,即从顶部边界到底部边界的像素距离。 这就设置好了主框架,就像一个盒子,接下来我们将通过坐标把这个盒子划分成小盒子,形成一个网格。 对于点5、6、7和8,我们需要理解什么是【土豆检测点】。脚本的工作原理是为每个目标位置检查一个像素,如果该像素包含优质土豆的颜色,就会在那里点击。这个像素就是土豆检测点。了解这些后,请查看图片。第一个马桶中心有一个红点,这就是土豆检测点(以下简称PDP)。 点5是PDP到主框架左侧的像素距离。例如,如果PDP的X坐标是500,主框架的X坐标是450,那么点5的值就是50像素,即两者之间的距离。 点6是PDP到主框架顶部的像素距离。同样举例,如果PDP的Y坐标是300,主框架的Y坐标是200,那么点6的值就是100像素。 点7和点8测量的是相邻PDP之间的距离,而非到主框架边框的距离。第7点包含我们正在使用的PDP到右侧马桶PDP的距离,第8点包含该PDP到底部马桶PDP的距离。 关于第9点的说明:图片中数字“9”旁边的绿色方框内有一条红线,你需要在该红线中选取任意一点。当游戏准备开始时,该区域会显示白色文本,内容类似“土豆准备好了!!!”,脚本会寻找这段白色文本以启动游戏。 第10点是脚本点击的“开始”按钮内的任意坐标。 致谢 如有任何问题,请留言,我会尽力提供帮助。此代码和指南由Triplesito制作。如果你喜欢这个,我建议你也这样做,学习Python并为你的游戏编写脚本,这是你能想象到的最简单的事情! 鸣谢