军棋游戏的玩法( 二 )

④本案例还记录路径,采用的是链表数据结构
每次把 prev 给记录下来,这下就可以追溯到整个完整的探测路线:
export class RouteNode extends Point { prev: RouteNode ; //前一个节点 next: RouteNode ; //下一个节点 step: number constructor(x: number, y: number, step: number) { super(x, y) this.step = step }}⑤队列是自己利用数组改成的
openharmony 目前 Deque、Queue 有 bug,没法用;只能用数组,然后 数组的 pop 是最后一个,就把探测顺序插入第一个 。
export class MyArrayQueue { nodes: RouteNode[] constructor() { this.nodes = new Array } push(node: RouteNode) { Logger.d(TAG, `push ...:${JSON.stringify(node)}`) this.nodes.unshift(node) Logger.d(TAG, `push end.:${JSON.stringify(this.nodes.length)}`) } pop(): RouteNode{ return this.nodes.pop() } size() { return this.nodes.length }}总结
可能代码直接拷贝过去跑不通;本文也就阐述一种思维,同时体现一下 openharmony 目的能力可达之处 。

推荐阅读