- 拆分:tools/split.js 重切新版(1347 模块 / 126 代码模块),主文件 main.7cfa4058.js,语法验证通过 - 修复 split.js 内自动刷新拦截的 \\n 转义:它在模板字符串里,必须写 \\\\n,否则生成的主文件字符串断行、语法报错 - 符号映射:map_symbols.js 对齐旧→新(qyr→ryz、w187→c18o、z4t→jtn、vgt→rkt、Bmt→Ezt、Qjt→Fjt、txt→Gjt、k15b→s15n、azi_1→vzr_1…) - 移植 7 处针对性修改:炮塔摆头不回弹(vSt.ryz)、摆头不过冲(case 0)、精准跟手(case 1/2)、悬浮底盘 raw 两级(Ezt.n36 + Zmt 实际速度)、电磁炮蓄力时长(jtn.c18o) - 重新打包 unpacked.pack.json(127 文件 / 版本 96833eb2b0cf8909)
64 lines
1.9 KiB
JavaScript
64 lines
1.9 KiB
JavaScript
// ============================================================
|
|
// Module ID: 13532
|
|
// ============================================================
|
|
;(window.__modules__ = window.__modules__ || {})[13532] = (t) => {
|
|
"use strict";
|
|
var n = {
|
|
single_source_shortest_paths: function (t, i, r) {
|
|
var e = {},
|
|
u = {};
|
|
u[i] = 0;
|
|
var s,
|
|
o,
|
|
_,
|
|
a,
|
|
h,
|
|
c,
|
|
l,
|
|
f = n.PriorityQueue.make();
|
|
for (f.push(i, 0); !f.empty();)
|
|
for (_ in ((o = (s = f.pop()).value), (a = s.cost), (h = t[o] || {})))
|
|
h.hasOwnProperty(_) &&
|
|
((c = a + h[_]),
|
|
(l = u[_]),
|
|
(void 0 === u[_] || l > c) && ((u[_] = c), f.push(_, c), (e[_] = o)));
|
|
if (void 0 !== r && void 0 === u[r]) {
|
|
var v = ["Could not find a path from ", i, " to ", r, "."].join("");
|
|
throw new Error(v);
|
|
}
|
|
return e;
|
|
},
|
|
extract_shortest_path_from_predecessor_list: function (t, n) {
|
|
for (var i = [], r = n; r;) (i.push(r), t[r], (r = t[r]));
|
|
return (i.reverse(), i);
|
|
},
|
|
find_path: function (t, i, r) {
|
|
var e = n.single_source_shortest_paths(t, i, r);
|
|
return n.extract_shortest_path_from_predecessor_list(e, r);
|
|
},
|
|
PriorityQueue: {
|
|
make: function (t) {
|
|
var i,
|
|
r = n.PriorityQueue,
|
|
e = {};
|
|
for (i in ((t = t || {}), r)) r.hasOwnProperty(i) && (e[i] = r[i]);
|
|
return ((e.queue = []), (e.sorter = t.sorter || r.default_sorter), e);
|
|
},
|
|
default_sorter: function (t, n) {
|
|
return t.cost - n.cost;
|
|
},
|
|
push: function (t, n) {
|
|
var i = { value: t, cost: n };
|
|
(this.queue.push(i), this.queue.sort(this.sorter));
|
|
},
|
|
pop: function () {
|
|
return this.queue.shift();
|
|
},
|
|
empty: function () {
|
|
return 0 === this.queue.length;
|
|
},
|
|
},
|
|
};
|
|
t.exports = n;
|
|
};
|