Graphwar 杀手
从 Graphwar 截图或 Agent 状态生成函数,也可以预览已有函数的轨迹。所有计算均在本地完成。
工作流
从路径点生成可复制到 Graphwar 的函数游戏模式
不同游戏模式的设定会分别保存设定
输出双绝对值连接函数操作栏
左键点两角落定边界;右键取消已选点数据来源
截图
可以截屏、上传、拖入或直接 Ctrl / Cmd + V 粘贴截图函数
先点出自己的位置,再选择至少一个路径点
寻路
请先载入截图
请先开启“使用 Agent”
寻路设置
表达式语法
| 类别 | 支持内容 |
|---|---|
| 变量 | x、y、y' |
| 运算符 | +、-、/、*、^、括号,以及 2x、2sin(x) 形式的隐式乘法 |
| 函数 | sqrt()、log()、ln()、abs()、sin()(别名 sen())、cos()、tan()(别名 tg())、exp();log 以 10 为底,ln 以 e 为底 |
| 常量 | e、pi |
| 兼容行为 | 默认按 Graphwar 原版规则将 y' 视为 y,并跳过未知字符;可在“高级设定”中关闭 |
使用说明
基本流程
- 上传、拖入、粘贴或截取 Graphwar 画面。需要准确数据时,也可以开启“使用 Agent”并读取状态。
- 确认坐标边界、士兵和障碍。自动识别不准确时,可手工修正边界和障碍。
- 在生成公式模式下,先选择自己的士兵,再添加目标或中间路径点。复制生成的函数到 Graphwar 即可使用。
- 在模拟轨迹模式下,选择发射士兵并输入函数。
y''还需要填写发射角。
工具会为 y、y'、y'' 分别保存算法设定。默认使用 y 双绝对值、y' 阶跃函数(邪道模式)和 y'' 阶跃函数。
陡峭度用于所有阶跃公式和双绝对值 y'' 的平滑折点脉冲。双绝对值 y'' 始终使用稳定脉冲公式,不使用阶跃算法的“防溢出”开关。
画布工具
- “吸附士兵”让点选位置吸附到识别出的士兵,并使用真实命中圈。
- “碰撞检查”用于手工解算和轨迹模拟。路径规划、一键清图和托管模式始终检查碰撞。
- “路径规划”在点选目标后自动寻找绕障路线。数据不完整时,界面会显示缺少的条件。
路径规划
路径规划从当前路径末端寻找绕障路线,生成函数,并在更新路径前验证完整轨迹。
“一键清图”从当前路径末端开始,寻找 x+ 方向的可用士兵,并尽量规划命中更多目标的路线。
“搜索动画”会显示单目标寻路过程,以及一键清图和托管当前已验证的最佳公式与实际轨迹。中间结果不会显示控制点;搜索完成后,当前控制点才会写入正式路径。手动一键清图可在截图中右键停止并保留当前结果,但不会自动发射;托管通过“托管模式”开关停止。
支持情况
| 函数算法 | 游戏模式 | 路径规划 | 一键清图 | 路线特点 |
|---|---|---|---|---|
| 双绝对值 | y、y'、y'' | 支持 | 支持 | 两点直连、平滑折点 |
| 阶跃函数 | y、y'、y'' | 支持 | 支持 | 直角路线 |
| 阶跃函数(邪道) | y'、y'' | 支持 | 支持 | 横向扫描、纵向瞬移 |
| PCHIP | y、y'、y'' | 支持 | — | 平滑曲线 |
| Akima | y、y'、y'' | 支持 | — | 平滑曲线 |
目标选择
- 所有结果都会通过完整轨迹验证后再更新路径。
- 阶跃路径规划优先瞄准命中圈中心;失败后再尝试命中圈
x+侧的内边缘。 - 同一 x 上有多个士兵时,邪道一键清图会按像素 y 从大到小,依次分配从
x-到x+的命中圈位置。 - 邪道一键清图沿
x+方向依次处理目标。当前目标不可达时,会跳过它并继续尝试后续目标。 - “删点优化”默认关闭。开启后会尝试删除多余控制点,最终轨迹验证不会省略。
寻路算法
| 算法 | 特点 |
|---|---|
| 惰性可视图 | 默认算法,通常更快、路线更直,但复杂障碍下可能漏掉可行路线 |
| Theta* | 通常较慢,但更适合复杂障碍 |
| X+ 扫描 | 阶跃 ODE 邪道模式自动使用;沿 x 正方向扫描,并在需要时尝试纵向瞬移 |
邪道模式
邪道模式用于阶跃 y' 和 y''。普通阶跃路线遇到障碍时,它会尝试生成纵向瞬移项;y'' 会在跳跃后用短刹车脉冲恢复原来的 y'。该模式需要准确的障碍和士兵位置,推荐通过 Agent 读取游戏状态。
托管模式
开启“使用 Agent”并填写有效地址后即可使用托管模式。托管会在房间内自动准备本地玩家,并在己方回合读取状态、计算一键清图和发射。
如果某个游戏模式的算法不支持一键清图,开启托管时会先列出需要调整的设定,并在确认后修改。搜索完成后会短暂显示耗时并立即提交发射,不等待页面渲染。
托管始终在后台保存当前最佳公式。“搜索动画”只控制页面预览,不影响搜索或截止时发射。
回合只剩 3 秒时,托管会发射已经验证的最佳方案;没有可用方案时,会提交跳过回合函数。它不会故意撞击障碍作为兜底,以免改变地图并为对手打开通道。
托管期间请让页面保持在前台,以免浏览器限制后台任务而延迟发射。
如何使用 Graphwar Agent
将 graphwar-agent.jar 放入游戏目录,然后在该目录运行:
java -javaagent:graphwar-agent.jar -jar graphwar.jar该命令会同时启动 Graphwar Agent 和游戏。回到工具后开启“使用 Agent”,即可读取状态或开启托管模式。更多信息请查看 Graphwar Agent。