| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package astar0
- import (
- "fmt"
- "testing"
- "time"
- )
- // * 1 0 1 0 1 0 0 0 0
- // 0 * * * 0 1 0 1 0 0
- // 1 1 1 1 * 1 0 1 0 1
- // * * * * * 0 0 1 0 1
- // * 1 0 1 1 1 1 1 0 0
- // * 1 0 0 0 0 0 0 0 1
- // * 1 1 1 1 1 1 1 1 1
- // 0 * * 0 1 * * * 1 0
- // 1 1 0 * 1 * 1 0 * 0
- // 0 0 0 0 * * 1 0 1 *
- func TestAStar(t *testing.T) {
- config := Config{
- Width: 26,
- Height: 26,
- HeuristicFunc: DiagonalFunc,
- MapData: [][]int32{
- {0, 1, 0, 1, 0, 1, 0, 0, 0, 0},
- {0, 0, 0, 0, 0, 1, 0, 1, 0, 0},
- {1, 1, 1, 1, 0, 1, 0, 1, 0, 1},
- {0, 0, 0, 0, 0, 0, 0, 1, 0, 1},
- {0, 1, 0, 1, 1, 1, 1, 1, 0, 0},
- {0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
- {0, 1, 1, 1, 1, 1, 1, 1, 1, 1},
- {0, 0, 0, 0, 1, 0, 0, 0, 1, 0},
- {1, 1, 0, 0, 1, 0, 1, 0, 0, 0},
- {0, 0, 0, 0, 0, 0, 1, 0, 1, 0},
- },
- DirectionFunc: Direction6Func,
- IsDebug: false,
- }
- aStar := New(config)
- startTime := time.Now().UnixNano()
- fmt.Printf("开始:%d\n", startTime)
- pathList1, err := aStar.FindPath(0, 0, 25, 25)
- if err != nil {
- fmt.Println(err)
- return
- }
- endTime := time.Now().UnixNano()
- fmt.Printf("结束:%d\n", endTime)
- fmt.Printf("耗时:%v(ns)\n", endTime-startTime)
- aStar.Print(pathList1)
- aStar.CheckNodes()
- fmt.Println("---------------------------------")
- pathList2, err := aStar.FindPath(6, 3, 5, 5)
- if err != nil {
- fmt.Println(err)
- return
- }
- aStar.Print(pathList2)
- aStar.CheckNodes()
- }
|