用数学函数打仗,把 y = x² 当成炮弹。
一个多人对战小游戏:你输入一个数学函数(比如 y = sin(x)),
函数图像会像炮弹一样从你的炮口画出去。画出的曲线碰到对方的士兵,对方就阵亡了。
先消灭对方全部士兵的队伍获胜。😎
打开终端(Windows 用 CMD 或 PowerShell),运行:
java -jar graphwar.jar
主菜单点 Join Game,填写:
服务器:graphwar.seasideray.cn
端口:6112
连上后进入房间,加好名字点 Ready,等房主开战即可。
Create Game,把房间名和端口告诉朋友,让他们 Join Game 填你的 IP 和端口。还能在 PreGame 界面点 Add Computer Player 加电脑 AI 练手。Fire。输入框里只需要写函数表达式,不用写 y=。支持以下语法:
| 写法 | 含义 | 例子 |
|---|---|---|
x | 变量 | x |
+ - * / | 加减乘除 | x/2 + 1 |
^ | 乘方 | x^2 |
sin cos tan | 三角函数(弧度) | sin(x) |
sqrt | 平方根 | sqrt(x+2) |
log / ln | 对数(log 为 10 为底) | log(x+1) |
abs | 绝对值 | abs(x) |
pi / e | 圆周率 / 自然常数 | sin(x) + pi/2 |
2x 或 3sin(x) | 隐式乘法,数字和括号可省 * | 2x + 1 |
| 想打出的轨迹 | 输入 |
|---|---|
| 直线突刺 | 2x + 3 |
| 抛物线(弧线抛射) | -0.1x^2 + x |
| 波浪扫射(S 型推进) | sin(x) |
| 大波浪 | 3sin(x/2) |
| 密集锯齿 | abs(x) - x |
| 上坡冲锋 | sqrt(x) + 1 |
| 指数爆发 | e^(x/4) |
x^100 这种瞬间冲出屏幕的暴力函数——它可能直接超出边界谁都打不到。曲线太夸张(值域爆炸)会被判定无效。sin(x) 能覆盖一条直线上的多个位置,敌人躲在洼地也容易被扫到。2x 比 2*x 少打一个字符,发射更快。Q:连不上服务器?
确认填的是 graphwar.seasideray.cn 和端口 6112,检查网络;服务器偶发重启时稍等 1 分钟再试。
Q:提示找不到 java?
说明没装 Java,去 java.com 下载安装后重开终端。
Q:输入函数后点 Fire 没反应?
检查函数有没有语法错误(括号配对、运算符完整)。报错的话输入框会有提示。
Q:房间满了/人不够?
加电脑 AI 凑人数,或者叫朋友一起连同一个服务器。
Q:游戏窗口太小/分辨率问题?
游戏窗口是固定大小的,直接把窗口最大化即可,或调低屏幕分辨率。