From 15f34a34c9588bc7b46dce8ee217e274adee38fa Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期一, 23 十二月 2024 12:41:36 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/common/utils/NavigateSolution.java | 35 ++++++++++++++++++++++-------------
1 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/zy/common/utils/NavigateSolution.java b/src/main/java/com/zy/common/utils/NavigateSolution.java
index 8e93bd1..2ad8529 100644
--- a/src/main/java/com/zy/common/utils/NavigateSolution.java
+++ b/src/main/java/com/zy/common/utils/NavigateSolution.java
@@ -1,8 +1,10 @@
package com.zy.common.utils;
+import com.core.common.SpringUtils;
import com.zy.common.model.NavigateNode;
import java.util.ArrayList;
+import java.util.List;
import java.util.PriorityQueue;
/**
@@ -14,17 +16,13 @@
int[][] map = {{}};
- public NavigateSolution() {
- //杞藉叆鍦板浘
- NavigateMapData mapData = new NavigateMapData();
- int[][] data = mapData.getData();
- this.map = data;
- }
-
- public NavigateSolution(Integer mapType) {
- //杞藉叆鍦板浘
- NavigateMapData mapData = new NavigateMapData();
- int[][] data = mapData.getData(mapType);
+ public NavigateSolution(Integer mapType, Integer lev, List<int[]> whitePoints, List<int[]> shuttlePoints) {
+ //杞藉叆鍦板浘鎸囧畾灞傞珮鍦板浘
+ NavigateMapData navigateMapData = SpringUtils.getBean(NavigateMapData.class);
+ int[][] data = navigateMapData.getDataFromRedis(lev, mapType, whitePoints, shuttlePoints);
+ if (data == null) {
+ data = navigateMapData.getData(lev, mapType, whitePoints, shuttlePoints);
+ }
this.map = data;
}
@@ -55,7 +53,7 @@
//瀵硅繖涓粨鐐归亶鍘嗭紝鐪嬫槸鍚︽湁鐩爣缁撶偣鍑虹幇
for (NavigateNode node : neighbour_node) {
// G + H + E (瀵瑰惎鍙戝嚱鏁板鍔犲幓鎷愮偣鏂规calcNodeExtraCost)
- int gCost = calcNodeCost(current_node, node) * calcNodeExtraCost(current_node, node, end);
+ int gCost = calcNodeCost(current_node, node) + calcNodeExtraCost(current_node, node, end);
if (node.getX() == end.getX() && node.getY() == end.getY()) {//鎵惧埌鐩爣缁撶偣灏辫繑鍥�
//init_node鎿嶄綔鎶婅繖涓偦灞呯粨鐐圭殑鐖惰妭鐐硅缃负褰撳墠缁撶偣
//骞朵笖璁$畻鍑篏锛� F锛� H绛夊��
@@ -198,13 +196,24 @@
return 1;
}
+ // 鎷愬悜涓昏建閬撶殑鐐�
+ if (map[nextNode.getX()][nextNode.getY()] == 3) {
+ //------------------涓夊嚡鐙壒鍒ゆ柇------------------//
+ if (nextNode.getX() == 15) {
+ return 2;//褰卞搷绠楁硶锛屼笉瑕佸湪15鎺掕繖涓富杞ㄩ亾鎹㈠悜
+ }
+ //------------------涓夊嚡鐙壒鍒ゆ柇------------------//
+
+ return 0;
+ }
+
// 鏅�氭嫄鐐�
/*
鎷愮偣鍒ゆ柇閫昏緫
鎷垮埌鐖惰妭鐐瑰拰涓嬩竴鑺傜偣
閫氳繃鍒ゆ柇鐖惰妭鐐瑰拰涓嬩竴鑺傜偣鐨剎鏁版嵁鍜寉鏁版嵁閮戒笉鐩稿悓鏃讹紝鍒欒〃鏄庡綋鍓嶅潗鏍囨槸涓�涓嫄鐐�
*/
- return 2;
+ return 3;
}
//------------------A*鍚彂鍑芥暟-end------------------//
--
Gitblit v1.9.1