现在AI能正确的辅助写aardio代码,语法上基本没有啥歧义了,真的是越来越好
var tab={
昌意城={"天籁岛三";"百鬼井三";"常羊山一"};
常羊山一={"昌意城";"常羊山三";"常羊山二"};
常羊山二={"常羊山一";"迷幻云阶一";"十里津"};
常羊山三={"常羊山一";"玉竹林一";"迷幻云阶一"};
玉竹林一={"常羊山三";"玉竹林二";"禁锢云海一"};
玉竹林二={"玉竹林一";"迷幻云阶一"};
迷幻云阶一={"常羊山二";"常羊山三";"玉竹林二";"迷幻云阶二"};
迷幻云阶二={"迷幻云阶一";"昆吾草原";"清凉世界";"雷泽一"};
昆吾草原={"迷幻云阶二"};
};
import console
// 添加新的函数来查找最短路径
findShortestPath = function(start, destination) {
var queue = {{start}};
var visited = {[start] = true};
var parent = {};
while (#queue > 0) {
var path = table.remove(queue, 1);
var node = path[#path];
if (node == destination) {
return path;
}
for (i, neighbor in tab[node]) {
if (!visited[neighbor]) {
table.push(queue, table.concat(path, {neighbor}));
visited[neighbor] = true;
parent[neighbor] = node;
}
}
}
return null; // 如果没有找到路径
}
// 使用示例
var start = "昌意城";
var destination = "昆吾草原";
var shortestPath = findShortestPath(start, destination);
if (shortestPath) {
console.log("从", start, "到", destination, "的最短路径是:");
console.dump(string.join(shortestPath," => "))
} else {
console.log("没有找到从", start, "到", destination, "的路径");
}
console.pause()
AI释义:
findShortestPath 函数
它使用广度优先(BFS)搜索算法来找出两个地点之间的最短路径。函数的参数是起点和终点,返回值是一个包含最短路径的表
群内大佬: 火柴天堂 手工搓的,都加了注释,感谢分享
import console;
var tab={
昌意城={"天籁岛三";"百鬼井三";"常羊山一"};
常羊山一={"昌意城";"常羊山三";"常羊山二"};
常羊山二={"常羊山一";"迷幻云阶一";"十里津"};
常羊山三={"常羊山一";"玉竹林一";"迷幻云阶一"};
玉竹林一={"常羊山三";"玉竹林二";"禁锢云海一"};
玉竹林二={"玉竹林一";"迷幻云阶一"};
迷幻云阶一={"常羊山二";"常羊山三";"玉竹林二";"迷幻云阶二"};
迷幻云阶二={"迷幻云阶一";"昆吾草原";"清凉世界";"雷泽一"};
昆吾草原={"迷幻云阶二"};
};
var road = {} ; // 存放路径
var visted={}; //标记到达过的地点
var ans = 99999; //最小步数
var startNode,destNode = "昌意城","昆吾草原" //
console.log(startNode,"-->",destNode)
show = function(data){ //输出
var t=startNode;
for(i=1;#data;1){
t= string.concat(t,"->",data[i])
}
console.log(t)
}
findPath2 = function(current,dest,path){//当前点,目标点,轨迹;
var curLoc = tab[current] ;// 当前所在地
if(curLoc == null) return ;// 当前地点不存在返回;
visted[current]=true; //当前地点标点为来过
if( table.find(curLoc,dest) != null ){ //如果在当前节点中找到目标地点
table.push(path,dest);
console.log("当前方案结果:",#path)
show(path);
if(#path < ans ){//如果当前步数优于已有方案,替换
road= path;ans=#path;
}
return ;
}
for(i=1;#curLoc;1){
var nexNode = curLoc[i]
if( tab[nexNode] != null && !visted[nexNode] ){ //如果下一地点存在并且没有访问过
findPath2(curLoc[i],dest,table.concat(path,{curLoc[i]}) );//将当前节点添加到路径中
visted[nexNode]=false; //还原访问标记
}
}
}
findPath2(startNode,destNode,{});
console.log()
console.log("最佳方案花费步数:",ans)
show(road);
console.pause();