跳转到内容

Graphwar 杀手

Graphwar 截图或 Agent 状态生成函数,也可以预览已有函数的轨迹。所有计算均在本地完成。

工作流

从路径点生成可复制到 Graphwar 的函数

游戏模式

不同游戏模式的设定会分别保存

设定

输出双绝对值连接函数
算法

操作栏

左键点两角落定边界;右键取消已选点

数据来源

截图

可以截屏、上传、拖入或直接 Ctrl / Cmd + V 粘贴截图
上传、拖入或粘贴截图后开始标定

函数

先点出自己的位置,再选择至少一个路径点

寻路

请先载入截图

请先开启“使用 Agent”

寻路设置
寻路算法

表达式语法

类别支持内容
变量xyy'
运算符+-/*^、括号,以及 2x2sin(x) 形式的隐式乘法
优先级与结合性由低到高为 + = -(二元) < -(一元) < * < / < ^。二元 - 表示加上一元负号,因此 1-21+-2 都按 1+(-2) 计算。重复的同一二元运算符按右结合解析,如 1+2+31+(2+3)1/2/31/(2/3)
函数sqrt()log()ln()abs()sin()(别名 sen())、cos()tan()(别名 tg())、exp()log 以 10 为底,lne 为底
常量epi
兼容行为默认按 Graphwar 原版规则将 y' 视为 y,并跳过未知字符;可在“高级设定”中关闭

使用说明

基本流程

  1. 上传、拖入、粘贴或截取 Graphwar 画面。需要准确数据时,也可以开启“使用 Agent”并读取状态。
  2. 确认坐标边界、士兵和障碍。自动识别不准确时,可手工修正边界和障碍。
  3. 在生成公式模式下,先选择自己的士兵,再添加目标或中间路径点。复制生成的函数到 Graphwar 即可使用。
  4. 在模拟轨迹模式下,选择发射士兵并输入函数。y'' 还需要填写发射角。

工具会为 yy'y'' 分别保存算法设定。默认使用 y 双绝对值、y' 阶跃函数(邪道模式)和 y'' 阶跃函数(邪道模式)。

画布工具

  • “吸附士兵”让点选位置吸附到识别出的士兵,并使用真实命中圈。
  • “碰撞检查”用于手工解算和轨迹模拟。路径规划、一键清图和托管模式始终检查碰撞。
  • “路径规划”在点选目标后自动寻找绕障路线。数据不完整时,界面会显示缺少的条件。

路径规划

路径规划从当前路径末端寻找绕障路线,生成函数,并在更新路径前验证完整轨迹。

阶跃单目标路径规划优先瞄准命中圈中心;失败后再尝试命中圈 x+ 侧的内边缘。

“一键清图”从当前路径末端开始,寻找 x+ 方向的可用士兵,并尽量规划命中更多目标的路线。

支持情况

函数算法游戏模式路径规划一键清图路线特点
双绝对值yy'y''支持支持两点直连、平滑折点
阶跃函数yy'y''支持支持直角路线
阶跃函数(邪道)y'y''支持支持横向扫描、纵向瞬移
PCHIPyy'y''支持平滑曲线
Akimayy'y''支持平滑曲线

一键清图瞄准规则

  • 优先瞄准士兵圆心;若圆心不在当前路径终点右侧,则改瞄准命中圈内最靠右的可用位置。
  • 多个士兵的 x 坐标相同时,会在各自命中圈内错开瞄准位置,尽量让路径继续向右推进。
  • 更新路径前会验证完整轨迹;弹道顺路命中的士兵也会计入结果。
  • 开启“删点优化”后,会在不影响命中的前提下尝试缩短路径。

寻路算法

算法特点
惰性可视图默认算法,通常更快、路线更直,但复杂障碍下可能漏掉可行路线
Theta*通常较慢,但更适合复杂障碍
X+ 扫描阶跃 ODE 邪道模式自动使用;沿 x 正方向扫描,并在需要时尝试纵向瞬移

邪道模式

邪道模式适用于阶跃 y'y''。普通阶跃无法绕过障碍时,会尝试用纵向瞬移继续路径;有障碍数据时仍会验证碰撞。需要准确越障时,推荐使用 Agent。

托管模式

开启“使用 Agent”并填写有效地址后即可使用托管模式。托管会在房间内自动准备本地玩家,并在己方回合读取状态、计算一键清图和发射。

页面取得实时 Agent 状态后,会在“开火”按钮左侧显示当前回合倒计时;手动读取、托管轮询和开火前检查都会校准该时间。

如果某个游戏模式的算法不支持一键清图,开启托管时会先列出需要调整的设定,并在确认后修改。搜索完成后会短暂显示耗时并立即提交发射,不等待页面渲染。

托管始终在后台保存当前最佳公式。“搜索动画”只控制页面预览,不影响搜索或截止时发射。

开启“搜索动画”时,新最佳方案的控制点会先显示;对应轨迹生成期间保留上一方案的完整轨迹,新轨迹就绪后再替换。

回合达到设定的发射预留时间时,托管会发射已经验证的最佳方案;没有可用方案时,会提交跳过回合函数。它不会故意撞击障碍作为兜底,以免改变地图并为对手打开通道。

托管期间请让页面保持在前台,以免浏览器限制后台任务而延迟发射。

如何使用 Graphwar Agent

graphwar-agent.jar 放入游戏目录。

graphwar-agent.jar 文件信息
  • 文件大小:110,649 字节
  • MD5:64e064b15795fe74c0719d415434cca2
  • SHA-256:0ed01f95f49ba87bdf40d9bba4023670e8ea8ce644d91c1d11496526832dec40
  • 版本号:2.1.0
  • 构建来源提交时间:2026-08-10T07:44:50+08:00
  • 构建来源:2ba809b070f1

然后在该目录运行:

bash
java -javaagent:graphwar-agent.jar -jar graphwar.jar

该命令会同时启动 Graphwar Agent 和游戏。回到页面后开启“使用 Agent”,即可读取状态或开启托管模式。

Windows Steam 版的 Graphwar 可以直接使用游戏自带的 Java:

shell
.\jre1.8\bin\java.exe -javaagent:graphwar-agent.jar -jar graphwar.jar
Graphwar Agent 启动选项

如需设置启动选项,请在 Agent JAR 路径后追加 =...。多个选项用逗号分隔:

shell
java -javaagent:graphwar-agent.jar=token=auto,maxRequestHeaderBytes=16384,maxRequestBodyBytes=1048576 -jar graphwar.jar
选项用途默认值可接受值
port设置 HTTP 监听端口17900;占用时再尝试后续 100 个端口(1790118000165535;显式设置后不再尝试其他端口
token启用 bearer token 鉴权不启用鉴权auto,或 1–4096 个不含逗号的可见 ASCII 字符
maxRequestHeaderBytes限制 HTTP 请求头大小819281921048576
maxRequestBodyBytes限制单次 API 提交的 JSON 数据大小65536102416777216
maxFunctionBytes限制单次提交的函数大小(按 UTF-8 计)6553611048576,且不会超过实际请求体上限
maxFunctionTokens限制 Graphwar 实际求值 token 数4432140960
endlessTurn给予本地人类玩家无限思考时间false精确的小写 true

4432 token 默认值通过了原版 parser 的 1 MiB 栈探针全部重复测试。邻近的更高候选值在全新 JVM 间结果不一致,因此高于 4432 的值属于 parser 不安全的显式配置:深递归公式可能耗尽 Graphwar 线程栈,大公式也可能长期占用处理线程。发射 POST 仍会立即返回;客户端必须先按 pending 响应的 Retry-After 等待,再轮询其 Location,直至命令结束。

更多信息请查看 Graphwar Agent

代码 MIT · 文稿 CC BY-SA 4.0 + SATA · 版权说明