精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

成人一区在线看| 三级黄色片在线观看| 中文字幕第15页| 久久久加勒比| 久久一二三国产| 欧美精品电影在线| 正在播放一区| 波多野结衣高清在线| 欧美丝袜足交| 五月激情六月综合| 国产精品区免费视频| 五月综合色婷婷| 国产精品xxx| 国产日韩影视精品| 日本欧美中文字幕| 女尊高h男高潮呻吟| 国产99在线观看| 91亚洲自偷观看高清| 色综合久久久久综合体桃花网| 成人欧美一区二区三区视频 | 嫩草一区二区三区| 亚洲一区中文日韩| 亚洲最大的网站| 清纯粉嫩极品夜夜嗨av| 欧美日韩黄网站| 亚洲精品成人天堂一二三| 亚洲一区亚洲二区| 久久综合久久鬼| 国产精品高潮呻吟久久久久| 午夜天堂影视香蕉久久| 国产一区二区在线网站| 日本少妇激情视频| 日韩有码av| 欧美主播一区二区三区| 天天综合色天天综合色hd| 中文字幕人妻一区二区在线视频 | 538精品在线观看| 日韩在线亚洲| 亚洲高清免费一级二级三级| 国产精品久久亚洲7777| 国产又黄又粗又长| 综合久久综合| 亚洲国内精品视频| 日韩中文字幕免费在线| 黄色av免费在线看| 久久精品国产在热久久| 九九热最新视频//这里只有精品 | 国产清纯白嫩初高生在线观看91 | 91浏览器在线视频| 国产成人免费av电影| 男人天堂资源网| 人人爱人人干婷婷丁香亚洲| 欧美日韩专区在线| 国产又黄又爽免费视频| 东京干手机福利视频| 亚洲中字黄色| 久久精品国产亚洲| 精品人妻在线视频| 成人国产在线| 欧美性色欧美a在线播放| 佐佐木明希av| 免费在线黄色网址| 国产成人免费在线观看| 国产91精品久久久| 久久久99999| 欧美理论电影在线精品| 亚洲高清av在线| 天天干在线影院| gogo久久| 亚洲人成在线播放网站岛国| 久久66热这里只有精品| 国产精品毛片久久久久久久av| 美女在线观看视频一区二区| 欧美精品做受xxx性少妇| 丰满圆润老女人hd| 国产一区二区三区探花 | 亚洲欧美另类视频| 99精品视频在线观看免费| 国产精品直播网红| www.av麻豆| 五月精品视频| 亚洲欧洲国产精品| 97人妻精品一区二区三区免费| www.成人在线视频| 91精品啪在线观看国产60岁| aaaaaa亚洲| 丰满诱人av在线播放| 中文字幕一区二区三区不卡| 蜜桃成人免费视频| 国产成人三级在线观看视频| 99视频国产精品| 亚洲一区二区免费在线| 免费看av毛片| 国产高清一区日本| 久久青青草原| 欧美成年黄网站色视频| 国产女同互慰高潮91漫画| 一区二区三区四区国产| 成人欧美亚洲| 国产情人综合久久777777| 97超碰人人爱| 香蕉视频亚洲一级| 日韩欧美一区二区三区| 亚洲 欧美 日韩 国产综合 在线 | 国产精品视频黄色| 日韩精品一区二区三区中文字幕 | 国产黄a三级三级| 亚洲激情av| 欧美激情视频一区| 久久精品视频免费在线观看| 亚洲在线观看| 亚洲自拍高清视频网站| 黄色在线小视频| 亚洲一级二级三级在线免费观看| 国产精品人人爽人人爽| 精品深夜福利视频| 亚洲成成品网站| 国产欧美小视频| 国产日韩欧美一区在线| 91高清免费视频| 日韩欧美激情视频| 国模娜娜一区二区三区| 2022国产精品| 1024免费在线视频| 亚洲人成精品久久久久| 狠狠热免费视频| 欧美影院天天5g天天爽| 九九久久综合网站| 国产又粗又猛视频| 国产福利一区二区三区| 亚洲精品日韩在线观看| 香蕉视频免费在线播放| 亚洲日本va在线观看| 日本新janpanese乱熟| 欧洲vs亚洲vs国产| 久久久视频精品| 中文字幕av影院| 青青国产91久久久久久| 国产色婷婷国产综合在线理论片a| 一级α片免费看刺激高潮视频| 精品一区二区三区蜜桃| julia一区二区中文久久94| 亚洲精品国产片| 26uuu精品一区二区在线观看| 伊人再见免费在线观看高清版| а_天堂中文在线| 精品免费一区二区三区| 五级黄高潮片90分钟视频| 亚洲精品社区| 精品不卡一区二区三区| 五月婷婷在线视频| 欧美日韩一二三区| av在线免费播放网址| 久久99九九99精品| 中文字幕超清在线免费观看| 精品一区二区三区中文字幕视频 | sm性调教片在线观看 | www国产视频| 精品国产a一区二区三区v免费| 啊v视频在线一区二区三区| 欧美人妻精品一区二区三区| 国产一区二区视频在线播放| 国产精品一区二区三区免费| 日本高清在线观看| 一区二区三区影院| 国产精品嫩草69影院| 国产一区不卡| 国产色视频一区| 在线观看午夜av| 在线观看欧美精品| 国产一二三四视频| 国产麻豆精品久久一二三| 麻豆av一区二区三区久久| 成人av三级| 精品久久国产老人久久综合| 国产亚洲精品久久久久久打不开| av日韩在线网站| 国语对白做受xxxxx在线中国| 精品成av人一区二区三区| 国产欧美精品在线| 青草在线视频| 亚洲欧美一区二区精品久久久| 最新一区二区三区| 99亚洲视频| 91香蕉国产在线观看| 国产精品一级伦理| 精品久久久久久中文字幕| 一区二区精品免费| 99国产一区| 日韩欧美视频一区二区三区四区 | 欧美专区在线视频| 亚洲第一页在线观看| 色婷婷久久久久swag精品| 97在线观看免费高| 97久久精品人人爽人人爽蜜臀| 四季av一区二区| 在线 亚洲欧美在线综合一区| 成人乱色短篇合集| 91在线播放网站| 日韩欧美成人激情| 免费在线观看亚洲| 日本一区二区三区四区| 精品伦一区二区三区| 美女诱惑一区二区| 99热成人精品热久久66| 女人抽搐喷水高潮国产精品| 国产精品久久久久久久美男| yourporn在线观看视频| 日韩欧美资源站| 国产福利视频网站| 91在线播放网址| 潘金莲一级淫片aaaaa| 青青草国产成人av片免费| 男女啪啪免费视频网站| 国产调教精品| 91视频九色网站| 国产精品亚洲成在人线| 91tv亚洲精品香蕉国产一区7ujn| 26uuu亚洲电影在线观看| 最近2019免费中文字幕视频三| 中文字字幕在线中文乱码| 欧美日韩免费一区| 最近中文字幕在线mv视频在线| 国产成人精品一区二区三区网站观看| 国产又黄又猛又粗| 婷婷亚洲五月色综合| 欧美精品久久| www.成人在线视频| 日韩av电影院| 在线观看涩涩| 色噜噜久久综合伊人一本| 亚州男人的天堂| 欧洲激情一区二区| 成人午夜淫片100集| 国产欧美日韩激情| 手机av免费看| 久久综合狠狠综合久久综合88| 97人妻精品一区二区三区免费| 国产一区不卡在线| 天天操精品视频| 91久久亚洲| 国产夫妻自拍一区| 亚州av一区| 精品一卡二卡三卡四卡日本乱码| 白白在线精品| 国产成人久久久| av在线日韩| 欧美国产亚洲精品久久久8v| 伊人福利在线| 欧美高清性猛交| 欧洲成人综合网| 久久久久久一区二区三区| 波多野结衣精品| 5252色成人免费视频| 在线看片国产福利你懂的| 欧美中文字幕第一页| 香蕉视频亚洲一级| 国产欧亚日韩视频| 欧美电影在线观看一区| 91丝袜脚交足在线播放| jizz18欧美18| 久久伊人一区| 日本女优一区| 好看的日韩精品视频在线| 狼人精品一区二区三区在线| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲男人都懂第一日本| 96久久精品| 国产区精品视频在线观看豆花| 国内精品**久久毛片app| 国产乱码精品一区二区亚洲| 日韩精品国内| 99久久亚洲精品| 成人在线国产视频| 鲁大师影院一区二区三区| 久艹在线免费观看| 国产精品久久久久久久免费软件| 欧美综合在线观看视频| 韩国欧美一区二区| 亚洲啪av永久无码精品放毛片| 2020国产精品久久精品美国| 亚洲一级片在线播放| 99精品在线免费| 五月天精品在线| 亚洲人成网站影音先锋播放| 国产成人免费观看视频| 欧美系列在线观看| 高清国产mv在线观看| 亚洲天堂免费观看| 欧美熟妇交换久久久久久分类 | 91久久精品国产| 激情亚洲另类图片区小说区| 日韩欧美一区二区三区四区| 欧美99在线视频观看| 伊人久久大香线蕉精品| 国产精品mm| 久久观看最新视频| 欧美亚洲网站| wwwxxx色| 国产大片一区二区| 第一次破处视频| 久久蜜桃av一区二区天堂 | 欧美xxx.com| 欧美xxxx做受欧美| av高清一区| 国产一区二区三区黄| 亚洲老妇激情| 狠狠热免费视频| 91网上在线视频| 中文字幕第28页| 午夜精品爽啪视频| 国产又粗又猛又黄又爽| 亚洲欧美另类人妖| av老司机在线观看| 91亚洲永久免费精品| 日韩精品不卡一区二区| 一区二区三区精品国产| 亚洲女优在线| 日韩少妇一区二区| 亚洲色图在线看| 在线观看国产黄| 亚洲午夜av电影| 美女100%一区| 你懂的网址一区二区三区| 在线欧美一区| 无码人妻一区二区三区精品视频| 亚洲欧美自拍偷拍| 久久久美女视频| 制服丝袜亚洲色图| 欧美一区二区三区在线观看免费| 日本中文字幕不卡免费| 三级小说欧洲区亚洲区| 欧美日本视频在线观看| 日韩国产欧美三级| 99999精品| 成人黄色av网站在线| 毛片网站免费观看| 狠狠综合久久av一区二区小说| 人妻丰满熟妇av无码区hd| 欧美激情国产日韩精品一区18| 国产精品免费精品自在线观看 | 国产福利免费视频| 精品毛片乱码1区2区3区| 97影院秋霞午夜在线观看| 国产噜噜噜噜噜久久久久久久久 | 成年永久一区二区三区免费视频| 国产视频福利一区| 色爱综合网欧美| 久久撸在线视频| 成人在线综合网站| 麻豆国产尤物av尤物在线观看 | 一区二区三区四区影院| 亚洲综合久久久| 日本中文字幕久久| 亚洲网在线观看| 成人国产精品一区二区免费麻豆 | 欧美伊人久久久久久久久影院| 黄视频在线播放| 国产精品美乳一区二区免费| 日韩免费看片| 在线播放av中文字幕| 91在线观看视频| 老熟妇一区二区三区| 日韩午夜av电影| 国产三级伦理在线| 欧美精品一区二区三区在线看午夜| 久久久久久自在自线| 五月天精品在线| 日韩一区二区三区三四区视频在线观看 | 成人蜜臀av电影| 国产精品免费精品一区| 伊人伊人伊人久久| 99riav视频在线观看| 久久久av水蜜桃| 免费人成在线不卡| www欧美com| 亚洲精品国产精品自产a区红杏吧| 筱崎爱全乳无删减在线观看 | 91精品国产综合久久久久久豆腐| 国产在线观看一区二区三区| 欧美日韩国产高清| 欧美黄色一级生活片| 欧美精品丝袜中出| 亚洲精品在线免费看| 国产激情视频网站| 精品一区二区在线看| 九九热最新地址| 亚洲第一区在线观看| 亚洲高清黄色| 337p亚洲精品色噜噜狠狠p| 视频一区在线播放| 荫蒂被男人添免费视频| 在线观看亚洲专区| caoporm免费视频在线| 国产精品入口福利| 欧美激情性爽国产精品17p| 一本色道久久综合亚洲精品图片| 欧美视频在线播放| 男女羞羞视频在线观看| 四虎一区二区|