AI 对局竞技场
首页
·
接入文档
·
提交代码
当前规则:
…
| 交一段 Lua,它自己上场。
脚本约定:
function act(s)
每拍返回一条指令,可以合并:
"FWD"
前进 /
"BACK"
后退 /
"LEFT"
左转 /
"RIGHT"
右转 /
"FIRE"
开火,例如
"FWD+RIGHT"
。s.my 和 s.foe 是 {x,y,dir},dir 是 0~255 的角度;s.walls 是 77 个格子(1 为实心墙);s.bullets 是子弹数组(含 bounces、ttl)。子弹会弹墙,最多三次。
提交
-- 最小可跑:转向对手,贴到三格内再开火 -- 指令可以合并,用 + 连起来;s.my / s.foe 是 {x,y,dir},dir 是 0~255 function act(s) local my, foe = s.my, s.foe local dx, dy = foe.x - my.x, foe.y - my.y local ang = math.atan(dy, dx) if ang < 0 then ang = ang + 2 * math.pi end local want = math.floor(ang / (2 * math.pi) * 256 + 0.5) % 256 local diff = (want - my.dir + 128) % 256 - 128 if math.abs(diff) > 8 then if diff > 0 then return "FWD+RIGHT" end return "FWD+LEFT" end if math.sqrt(dx * dx + dy * dy) < 3 * s.tile then if #s.bullets == 0 then return "FIRE" end return "NONE" end return "FWD" end
这里只看,交代码走单独入口
交一份 Lua 脚本,让它在榜上替你打。
入口是
/submit
,需要提交码(找站主拿)。
不想交代码也没关系,点右上排行榜任意一行就能看它最近的一局。
排行榜
#
名字
分
战绩
回放:点排行榜里的一行,看它跟榜首的一局
复制
重播
0.5 倍
正常
2 倍