精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Openharmony 軍棋工兵尋徑算法的實現

系統 OpenHarmony
在軌道上自由移動,怎樣走都行,只要不超過 軌道的區域,想走多遠就走多遠,但是如果有個棋子(不論敵我)堵住路 線,你就不能按照那個路線行進;同時我們還要尋找到最近的路徑。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

一、引言

工兵可在鐵路線上任意行走,其它棋子在鐵路線上只能直走或 經過弧形線,不能轉直角彎; 工兵在普通路線上跟其他棋子一樣,走一格。但是在軌道上,就 如入無人之地了。可以在軌道上自由移動,怎樣走都行,只要不超過 軌道的區域,想走多遠就走多遠,但是如果有個棋子(不論敵我)堵住路 線,你就不能按照那個路線行進;同時我們還要尋找到最近的路徑。

openharmony 軍棋工兵尋徑算法的實現-開源基礎軟件社區

二、算法分析

大體要求

1、工兵從起點到終點過程中不能有障礙物阻擋。

2、如何尋求到路徑最短?且是否用時最快。

3、也有可能起點到終點是死路。

軍旗的工兵走法特別像迷宮走法

迷宮算法

1、深度優先搜索(DFS)

它和遞歸的探測思路是基本一致的,可以看成是遞歸方式的非遞歸版本。

2、廣度優先搜索(BFS)

廣度優先搜索法利用隊列的特點,一層層向外擴展查找可走的方塊,直到找到出口為止,最先找到的這個答案就必然是最短的。

3、根據特點我們希望最先找到最短的距離故采用bfs的方式。

采用隊列來記錄探測點;當前探測點的四個方向,可以通過的點,保存到這個隊列中,并移除當前探測點。

openharmony 軍棋工兵尋徑算法的實現-開源基礎軟件社區

右 下 左 上 的 四個方向探測。

openharmony 軍棋工兵尋徑算法的實現-開源基礎軟件社區

采用一個二維數組來存儲 x,y上的障礙物,和探測的點。

let noChessBoard: number[][] = [ // a[j][h]代表j行h列數據  // 1,行:row 2、列:column  export const ROW = 12  export const COLUMN = 4
[1, 1, 1, 1, 1],
[0, 0, 0, 0, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 0, 0],
[0, 1, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 0, 0],
[1, 1, 1, 1, 1]]

代碼實現

(1)獲取到起點和終點坐標。

this.routeNode = this.engineerRoute(firstChess, moveChess);

(2)獲取二維數組迷宮標記。

二維數組是記錄棋盤上 0 是表示可通狀態,1表示不可通。默認是棋盤鐵路都為0可通。

然后,敵方和友方其中全部設置為不可通1。

// 工兵路徑尋找 (bfs 廣度優先搜索)
private engineerRoute(start: Chess, end: Chess): RouteNode {
let noChessBoard: number[][] = [ // a[j][h]代表j行h列數據 // 1,行:row 2、列:column export const ROW = 12 export const COLUMN = 4
[1, 1, 1, 1, 1],
[0, 0, 0, 0, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 0, 0],
[0, 1, 0, 1, 0],
[0, 0, 0, 0, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 1, 1, 1, 0],
[0, 0, 0, 0, 0],
[1, 1, 1, 1, 1]]

for (let i = 0;i < this.aList.length; i++) {
let a = this.aList[i]
noChessBoard[a.y][a.x] = 1
}
for (let i = 0;i < this.bList.length; i++) {
let b = this.bList[i]
noChessBoard[b.y][b.x] = 1
}

return this.bfs(start, end, noChessBoard)
}

(3)進行廣度優先搜索。

private bfs(start: Chess, end: Chess, roads: number[][]): RouteNode{
Logger.d(TAG, `bfs roads:${JSON.stringify(roads)}`)
Logger.d(TAG, `bfs start:${JSON.stringify(start)}`)
Logger.d(TAG, `bfs end:${JSON.stringify(end)}`)
let routeQueue = new MyArrayQueue()
let first = new RouteNode(start.x, start.y, 0)
routeQueue.push(first)
while (routeQueue.size() != 0) {
Logger.d(TAG, `bfs scan while routeQueue:${JSON.stringify(routeQueue)}`)
let node = routeQueue.pop()
Logger.d(TAG, `bfs scan pop node:${JSON.stringify(node)}`)
let x = node.x
let y = node.y
if (x === end.x && y === end.y) {
return node
// break
}
for (var i = 0; i < 4; i++) {
let tx = x + this.dx[i]
let ty = y + this.dy[i]
Logger.d(TAG, `bfs scan tx:${tx} ty:${ty}`)
if (tx >= 0 && tx <= COLUMN && ty >= 0 && ty <= ROW && roads[ty][tx] === 0) { // 如果該位置可以走動
// 入隊
Logger.d(TAG, `bfs add tx:${tx} ty:${ty}`)
let temp = new RouteNode(tx, ty, node.step + 1)
temp.prev = node
routeQueue.push(temp)
Logger.d(TAG, `bfs scan push :${JSON.stringify(routeQueue)}`)
roads[ty][tx] = 1
}
}
// 擴展完
Logger.d(TAG, `bfs scan one end...`)
}
return null
}

(4)本案例還記錄路徑,采用的是鏈表數據結構。

每次 把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
}
}

(5)隊列是自己利用數組改成的。

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目的能力可達之處。

??想了解更多關于開源的內容,請訪問:??

??51CTO 開源基礎軟件社區??

??https://ost.51cto.com??

責任編輯:jianghua 來源: 51CTO 開源基礎軟件社區
相關推薦

2022-12-19 16:56:48

游戲開發鴻蒙

2023-12-20 08:35:54

Dijkstra算法A*算法計算機圖形學

2012-08-13 14:17:35

算法代碼

2017-07-26 15:59:51

尋路算法Dijkstra游戲

2021-01-28 10:55:31

算法可視化數據

2022-05-31 15:27:11

CSS動畫

2022-03-08 08:55:35

黑客網絡工兵

2021-07-29 15:46:28

數字藍耘算力

2024-06-20 11:11:07

2022-07-25 14:17:04

JS應用開發

2022-08-10 16:08:38

鴻蒙CSS

2023-06-14 15:15:13

刪除列表項新增列表項

2022-07-19 20:33:38

MQTT阿里云IoT服務

2022-05-27 14:55:34

canvas畫布鴻蒙

2022-06-28 14:42:26

ETS購物車應用

2022-03-03 19:31:31

隊列算法Harmony

2021-06-06 16:05:31

OpenHarmony

2022-06-20 15:27:00

socket對話鴻蒙

2017-04-11 21:03:50

機器人智能化人工智能

2024-01-11 15:54:55

eTS語言TypeScript應用開發
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久久久晋中 | 日韩成人中文字幕| 成人免费观看cn| 国产精品无码2021在线观看| 国产一区二区三区在线观看精品| 性色av一区二区三区| 天天摸日日摸狠狠添| 日韩高清一区| 在线亚洲精品福利网址导航| 久久免费一级片| 国产天堂在线| 高清不卡一二三区| 国产剧情久久久久久| 国产无码精品视频| **女人18毛片一区二区| 亚洲欧美在线看| 国产xxx在线观看| 99久久伊人| 黄色成人在线播放| 国产手机视频在线观看| 国外av在线| 成人99免费视频| 91夜夜揉人人捏人人添红杏| 男人天堂av在线播放| 激情婷婷久久| 久久夜色精品国产亚洲aⅴ| 国产老熟女伦老熟妇露脸| 国产精品视频一区二区三区综合| 一本色道**综合亚洲精品蜜桃冫 | 九七久久人人| 国产日韩精品久久久| 狠狠色狠狠色综合人人| 国产免费黄色大片| 美腿丝袜亚洲色图| 国产97在线亚洲| 日韩欧美三级视频| 激情成人亚洲| 久久久久国产一区二区三区| 国产老头老太做爰视频| 成人在线一区| 国产亚洲免费的视频看| 久久精品一区二区免费播放| 极品国产人妖chinesets亚洲人妖| 欧美一区二区网站| 久久国产激情视频| 123成人网| 91久久人澡人人添人人爽欧美| 日本a在线免费观看| 女同视频在线观看| 亚洲一区二区影院| 男人添女人下部高潮视频在观看| 图片区小说区亚洲| 亚洲午夜三级在线| 日韩精品在线观看av| 丁香花高清在线观看完整版| 亚洲高清免费视频| 蜜臀av色欲a片无码精品一区| 日韩另类在线| 午夜精品久久久久久不卡8050| 97干在线视频| av今日在线| 欧美午夜女人视频在线| 99爱视频在线| 麻豆精品蜜桃| 欧美日韩精品一区二区三区蜜桃 | 亚洲婷婷国产精品电影人久久| 亚洲欧洲国产日韩精品| 欧美18hd| 一级特黄大欧美久久久| 亚洲 欧美 综合 另类 中字| 女人让男人操自己视频在线观看| 好吊成人免视频| 国产a级片免费观看| 91亚洲精品| 欧美一级日韩一级| 插我舔内射18免费视频| 国产一区二区三区91| 日韩亚洲第一页| 加勒比婷婷色综合久久| 亚洲久久在线| 国产精品日韩在线播放| 日韩欧美一级大片| 国产成人在线视频网站| 精品国产乱码久久久久久郑州公司| 少妇性bbb搡bbb爽爽爽欧美| 国产精品三级视频| 老司机午夜免费福利视频| 96av在线| 欧美三级电影在线观看| 精品国产aⅴ一区二区三区东京热 久久久久99人妻一区二区三区 | 精品国产乱码久久久久久虫虫漫画| 日本毛片在线免费观看| 外国成人毛片| 精品99999| 成人性生交大片免费看无遮挡aⅴ| 欧美日本二区| 国产精品成人v| 国产xxxx孕妇| 欧美极品少妇xxxxⅹ高跟鞋| 欧洲金发美女大战黑人| 东京一区二区| 日韩午夜精品电影| 中文字幕 自拍| 欧美三级乱码| 国产精品揄拍一区二区| 亚洲 精品 综合 精品 自拍| ...中文天堂在线一区| 国产男女在线观看| 亚洲亚洲一区二区三区| 国产亚洲欧洲高清一区| 日本熟妇色xxxxx日本免费看| 奇米影视一区二区三区| 久久久精品有限公司| 成人在线观看亚洲| 91福利视频网站| 精品1卡二卡三卡四卡老狼| 99精品美女| 国产精品电影一区| 四虎精品在线| 亚洲国产裸拍裸体视频在线观看乱了| www.99av.com| 午夜欧洲一区| 国内揄拍国内精品少妇国语| 国产免费不卡视频| 国产精品久久久久久久久晋中| 日本精品免费在线观看| 国产成人aa在线观看网站站| 欧美成年人网站| 中文字幕人妻一区二区在线视频 | 特级西西444www大精品视频免费看| 日本免费新一区视频| 久久亚洲国产精品日日av夜夜| a视频在线免费看| 欧美精选午夜久久久乱码6080| 中国毛片在线观看| 噜噜噜躁狠狠躁狠狠精品视频| 官网99热精品| 欧美xxxx少妇| 精品久久五月天| 中文字幕影音先锋| 国产成人啪免费观看软件| 六月婷婷激情网| 精品视频在线播放一区二区三区| 日韩视频―中文字幕| 亚洲天堂手机版| 1024成人网色www| 亚洲精品免费一区亚洲精品免费精品一区 | 天堂资源在线中文精品| 欧美黑人3p| 日韩在线免费| 欲色天天网综合久久| 在线免费观看高清视频| 国产精品久久久久四虎| 欧美在线a视频| 欧美国产精品| 国产区一区二区| 蜜臀久久精品| 亚洲视频一区二区三区| 亚洲视屏在线观看| 国产精品丝袜在线| 国产乱叫456| 2023国产精品久久久精品双| 99精品国产高清在线观看| 国产网红女主播精品视频| 亚洲第一区在线观看| 国产又大又黄视频| 欧美国产一区二区| 亚洲一区二区福利视频| 午夜久久一区| 久久久亚洲综合网站| 成人激情综合| 插插插亚洲综合网| 色噜噜一区二区三区| 一本到不卡精品视频在线观看| 日本午夜精品视频| 国产精品资源在线看| 免费在线观看视频a| 亚洲激情播播| 91精品国产综合久久男男| 色呦呦在线观看视频| 日韩大陆毛片av| 一级特黄aaaaaa大片| 亚洲午夜影视影院在线观看| 国产aⅴ激情无码久久久无码| 理论电影国产精品| 久操网在线观看| 欧美午夜精品一区二区三区电影| 91美女高潮出水| 日韩av一卡| 久久天天躁日日躁| 无码精品黑人一区二区三区| 欧美手机在线视频| 国产午夜精品一区二区理论影院 | gogo亚洲高清大胆美女人体| 久久色免费在线视频| 日韩av成人| 欧美一级在线免费| 波多野结衣午夜| 一区二区三区四区亚洲| 亚洲av成人无码久久精品| 国产成人综合自拍| 色综合天天色综合| 中文亚洲免费| 日本久久高清视频| 精品国产乱码久久久久久果冻传媒| 亚洲影视中文字幕| 福利一区在线| 日本sm极度另类视频| 中文字幕在线观看网站| 亚洲午夜小视频| 亚洲狼人综合网| 欧美精品18+| 亚洲精品国产无码| 无吗不卡中文字幕| 黄色一级片中国| 欧美电影免费观看高清完整| 国产成a人无v码亚洲福利| 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 亚洲天堂网在线观看视频| 性做久久久久久| 国产免费无码一区二区视频| 欧美激情综合网| 国产高清自拍视频| 成人一区二区三区中文字幕| 九九九九九九九九| 免费看欧美美女黄的网站| www.玖玖玖| 国产日韩欧美三级| 国产日韩av网站| 欧美日韩精品免费观看视频完整| 亚洲一区二区不卡视频| 欧美最新另类人妖| 日本视频一区二区不卡| 色吊丝一区二区| 国产亚洲福利社区| 91亚洲无吗| 999视频在线免费观看| 国产精品蜜月aⅴ在线| 国产精品久久二区| 666av成人影院在线观看| 欧美一区二区三区免费观看| 国产传媒av在线| 97精品视频在线播放| 国产美女高潮在线| 911国产网站尤物在线观看| 999精品网| 91chinesevideo永久地址| 国产污视频在线播放| 午夜精品一区二区三区视频免费看| 欧美videossex| 欧美黑人性视频| 2021天堂中文幕一二区在线观| 国产+人+亚洲| 乡村艳史在线观看| 热re91久久精品国99热蜜臀| 欧美黑人疯狂性受xxxxx野外| 欧洲成人性视频| 精品欧美一区二区三区在线观看 | 91av国产在线| 久久精品女人天堂av免费观看 | 欧美高清一级片| 成人av资源网| 九色精品91| 亚洲一区影院| 亚洲视频综合| www黄色av| 美女脱光内衣内裤视频久久影院| 天天色天天综合网| 国产91对白在线观看九色| 大黑人交xxx极品hd| 欧美经典一区二区| 男人与禽猛交狂配| 午夜精品一区在线观看| 无码视频在线观看| 制服丝袜日韩国产| 天天操天天干天天操| 亚洲图片欧美午夜| 亚洲按摩av| 日韩av大片免费看| 国产精品欧美一区二区三区不卡| 国产精品一区视频网站| 北条麻妃国产九九九精品小说 | 成人羞羞视频免费| 精品一区三区| 看一级黄色录像| 国产精品久久久久久久久久妞妞| 污污动漫在线观看| 丁香婷婷综合激情五月色| 波多野结衣a v在线| 日韩美女久久久| 欧美日韩一级黄色片| 日韩一级视频免费观看在线| 日本福利在线观看| 久久成人精品一区二区三区| 手机av在线| 国产精品一区二区在线| 精品按摩偷拍| 一本一道久久a久久精品综合| 亚洲无线视频| 日本人69视频| 91在线国内视频| 最新一区二区三区| 色视频成人在线观看免| 午夜精品久久久久久久91蜜桃| 亚洲视频在线观看视频| 亚洲丝袜一区| 国产在线视频不卡| 美女毛片一区二区三区四区| 黄色网在线视频| 免费高清视频精品| 丰满少妇一区二区三区| 亚洲精品视频一区| 亚洲一二区视频| 亚洲人成毛片在线播放| 久久影院午夜精品| 亚洲一区国产精品| 日本大胆欧美| 免费黄色日本网站| yourporn久久国产精品| 久久久久久久久久久久久女过产乱| 91成人免费网站| 四虎在线免费看| 97在线视频免费播放| 日韩精品三级| 三年中文高清在线观看第6集| 日韩精品91亚洲二区在线观看 | 久久不见久久见中文字幕免费| 屁屁影院ccyy国产第一页| 久久机这里只有精品| 极品人妻videosss人妻| 色婷婷亚洲婷婷| 欧洲成人av| 热99精品里视频精品| 亚洲人和日本人hd| 日韩精品视频久久| 91蜜桃传媒精品久久久一区二区| 日韩免费一级片| 亚洲激情视频网站| 91桃色在线观看| 国产伦精品一区二区三区高清| 亚洲午夜电影| 亚洲啪av永久无码精品放毛片| 一区二区三区四区在线播放 | 国产黄色片免费在线观看| 国产成人精品免费| 国产一级免费观看| 亚洲成人xxx| 碰碰在线视频| 美女被啪啪一区二区| 久久亚洲风情| 精品人妻中文无码av在线| 欧美午夜电影在线播放| 最新97超碰在线| 成人亚洲激情网| 国产精品videosex极品| 男男一级淫片免费播放| 精品久久久久久久久中文字幕| 亚洲欧美日韩精品永久在线| 国产成人精品久久亚洲高清不卡| 国产99久久久国产精品成人免费| 已婚少妇美妙人妻系列| 中文在线一区二区| 国产农村妇女毛片精品久久| 欧美黑人性视频| 免费短视频成人日韩| 天天色综合天天色| 亚洲精品视频一区二区| 深夜福利视频网站| 国产精品jizz在线观看麻豆| 天天影视欧美综合在线观看| 永久av免费在线观看| xxxxx.日韩| 91麻豆桃色免费看| 亚洲清纯自拍| 亚洲精品成人av久久| 日韩你懂的在线播放| 欧美a级在线观看| 一区二区成人国产精品| 国产伦精一区二区三区| 99热在线观看免费精品| 最近2019好看的中文字幕免费| 亚洲国产中文在线| 北条麻妃在线一区| 亚洲女子a中天字幕| 日本亚洲一区| 91在线免费看网站| 免播放器亚洲| 黄色录像一级片| 日韩精品在线视频| 爱情电影网av一区二区| 成年人视频观看| 最新日韩在线视频| 日本大片在线观看| 99爱精品视频| 日韩精品成人一区二区在线| 久久久精品国产sm调教网站| 一本色道久久88综合日韩精品| 麻豆视频久久| 午夜免费精品视频| 亚洲超碰精品一区二区|