01恢复双方身体历史
02枚举己方最多 4 个落点
03BFS 计算空间与资源
04枚举对手全部合法一步
05按最坏局面选择最高分
输入:地图 + 双方状态
→输出:一个合法落点
让“贪吃蛇”从寻找一条路,升级为在同时移动、动态缩圈和对手博弈中做实时决策。
每回合只有 100 ms。双方同时移动,地图持续缩圈,苹果和护盾又会改变长度与碰撞胜负。
输入:地图 + 双方状态
→输出:一个合法落点
占用字符只告诉我们“哪里有身体”,连续回合的头坐标才能恢复“身体顺序”。
新头压入历史;再用地图可见长度校准,覆盖初始生长和吃道具后的变化。
直接收益:若本步不增长,旧尾格可以临时开放;AI 因此能判断“绕回自己的尾巴”是否可行。
“最近”不是目标,可持续地到达才是目标。
Score(move) = minopp ∈ legal Eval(move, opp)
这里的结论取决于最差的“败碰”,因此该动作被淘汰。
hash = hash × 4 + direction
给定蛇头坐标,再记录相邻身体节的相对方向序列,就能唯一恢复整条蛇。
刚好匹配约束:k ≤ 9,最多 8 位四进制数,因此 0…4⁸−1 = 65535,可直接作为 vis[16][16][65536] 的下标。
共同方法:先找到最小充分状态,再只搜索影响未来的信息。
我们交付的不是一条固定路线,而是一套能随局面更新的实时决策方法。