91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 4KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-05
  • 語言: Java
  • 標(biāo)簽: A*??AStar??算法源碼??

資源簡介

A*源碼免費開放,內(nèi)涵main函數(shù)可執(zhí)行測試之用。 沈陽-亞冰

資源截圖

代碼片段和文件信息

package?com.liuybc.astar;

import?java.util.ArrayList;
import?java.util.HashMap;?
import?java.util.List;
import?java.util.Map;?

public?class?AStarMap?{

private?List?openList?=?new?ArrayList();
private?Map?closeMap?=?new?HashMap();
//?private?Set?closeSet?=?new?HashSet();

private?boolean?isFind?=?false;
private?List?path?=?new?ArrayList();

/**?障礙物?*/
public?static?final?int?STATE_BARRIER?=?2;

AStarNode?target;
AStarNode?source;

int[][]?astarData;

public?AStarMap(int?xGridNum?int?yGridNum)?{
astarData?=?new?int[yGridNum][xGridNum];
source?=?new?AStarNode(0?0);
target?=?new?AStarNode(xGridNum?-?1?yGridNum?-?1);
}
private?int[][]data;

public?int[][]?getData()?{
return?data;
}

public?void?setData(int[][]?data)?{
this.data?=?data;
}

// public?static?void?main(String[]?args)?{
// AStarMap?asm?=?new?AStarMap(100?200);
// //?int[][]data=?{
// //?{00000}{00000}{00100}{00000}{00000}
// //?{00000}{00000}{00100}{00000}{00000}
// //?{00000}{00000}{00100}{00000}{00000}
// //?{00000}{00100}{00100}{00000}{00000}
// //?{00000}{00000}{00000}{00000}{00000}
// //?};
//
// asm.loadData(data?1?-1);
// List?list1?=?asm.find();
//
// for?(int?i?=?0;?i?// AStarNode?asn?=?(AStarNode)?list1.get(i);
// System.out.println(asn.getX()?+?“??????????“?+?asn.getY());
// }
// asm.toString();
// List?list?=?asm.getOpenList();
// for?(int?i?=?0;?i?// AStarNode?asn?=?(AStarNode)?list.get(i);
// System.out.println(asn.getX()?+?“??????????“?+?asn.getY()
// +?“?======?“?+?asn.getFather().getX()?+?“?????????“
// +?asn.getFather().getY());
// }
//
// }

public?AStarNode?getTarget()?{
return?target;
}

public?AStarNode?getSource()?{
return?source;
}

public?int[][]?getAStarData()?{
return?astarData;
}

/**
?*?搜索算法
?*/
public?List?find()?{
init();
AStarNode?current?=?null;
while?(!isEnd()?&&?!isFind())?{
current?=?getMinFNodeFromOpenList();
if?(isAchieve(current))?{?//?是否以及找到目標(biāo)
buildPath(current);
isFind?=?true;
}?else?{
add2CloseMap(current);
for?(AStarNode?neighbor?:?getNeighbor(current))?{
if?(neighbor?==?null?||?isInCloseMap(neighbor)?||?/*
?*?如果已經(jīng)在關(guān)閉列表中,
?*?那么跳過
?*/
isCanNotGo(current?neighbor))
continue;

boolean?isBetter?=?true;
AStarNode?nodeFromOpenList?=?getNodeFromOpenList(neighbor);
if?(nodeFromOpenList?!=?null)?{?//?如果在開啟列表中
neighbor?=?nodeFromOpenList;
int?tg?=?neighbor.distinctG(current);
isBetter?=?tg?>?neighbor.getG()???false?:?true;
}?else?{
add2OpenList(neighbor);
}
if?(isBetter)?{
neighbor.reCalculatorGAndH(current?target);
}
}
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-09-13?15:58??astar\
?????文件????????8592??2012-09-13?16:00??astar\AStarMap.java
?????文件????????3272??2012-09-12?14:37??astar\AStarNode.java

評論

共有 條評論