/mazepath

2D地图迷宫自动生成最短路径算法v1

Primary LanguageGo

2D地图自动生成最短路径算法v1

算法的思路就是每次遇到选择就新开一个路径分支,并且记录每个路径点的效率最高的步数,抛弃低效率的路径分支

算法已经完成,但没有使用goroutine并发计算不同的路径分支,效率还有待优化

###迷宫用二维数组表示,0表示可通行,1表示不可通行

mazeMap = [][]int{
		{0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1},
		{0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1},
		{0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1},
		{0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1},
		{0, 1, 1, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1},
		{0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 1, 1},
		{1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1},
		{0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0},
		{0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 0},
		{0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0},
		{0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0},
		{0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0},
		{0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0},
		{0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0},
		{0, 0, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0},
}