| | |
| | | RetreatNavigateNode finialNode = null; |
| | | |
| | | PriorityQueue<RetreatNavigateNode> openQueue = new PriorityQueue<>(); |
| | | ArrayList<RetreatNavigateNode> existNodes = new ArrayList<>(); |
| | | Set<RetreatNavigateNode> existNodes = new HashSet<>(); |
| | | |
| | | openQueue.add(start); |
| | | existNodes.add(start); |
| | | boolean phaseSecond = true; |
| | | |
| | | while (openQueue.size() > 0 && null == finialNode) { |
| | | while (!openQueue.isEmpty() && null == finialNode) { |
| | | |
| | | RetreatNavigateNode currentNode = openQueue.poll(); |
| | | |
| | |
| | | int actualLanesOfTurn = 0; |
| | | int filterPointOfTurnTimes = 0; |
| | | |
| | | while (openQueue.size() > 0 && null == finialNode) { |
| | | while (!openQueue.isEmpty() && null == finialNode) { |
| | | |
| | | RetreatNavigateNode currentNode = openQueue.poll(); |
| | | List<RetreatNavigateNode> enableNodes = new ArrayList<>(); |
| | |
| | | } |
| | | |
| | | // 获取四周节点 |
| | | private ArrayList<RetreatNavigateNode> getNeighborNodes(RetreatNavigateNode currentNode, List<RetreatNavigateNode> existNodes) { |
| | | private ArrayList<RetreatNavigateNode> getNeighborNodes(RetreatNavigateNode currentNode, Set<RetreatNavigateNode> existNodes) { |
| | | |
| | | int x = currentNode.getX(); |
| | | int y = currentNode.getY(); |
| | |
| | | return neighbourNodes; |
| | | } |
| | | |
| | | private RetreatNavigateNode extendNeighborNodes(RetreatNavigateNode currentNode, RetreatNavigateNode extendNode, List<RetreatNavigateNode> existNodes, Integer dx, Integer dy) { |
| | | private RetreatNavigateNode extendNeighborNodes(RetreatNavigateNode currentNode, RetreatNavigateNode extendNode, Set<RetreatNavigateNode> existNodes, Integer dx, Integer dy) { |
| | | RetreatNavigateNode nextNode; |
| | | |
| | | if (null == dx || null == dy) { |
| | |
| | | return extendNeighborNodes(currentNode, nextNode, existNodes, dx, dy); |
| | | |
| | | } else { |
| | | if (this.isExist(nextNode, existNodes)) { |
| | | if (existNodes.contains(nextNode)) { |
| | | return null; |
| | | } |
| | | |