private int[] ConvertFromInnerPos(Astar.Pos pos) { int[] ret = new int[2]; ret[0] = pos.y; ret[1] = mHeight - 1 - pos.x; return(ret); }
public Queue <int[]> Search(int[] start, int[] end) { if (start[0] < 0 || end[0] < 0 || start[1] >= mHeight || end[1] >= mHeight) { return(new Queue <int[]>()); } Astar.Pos posStart = ConvertToInnerPos(start); Astar.Pos posEnd = ConvertToInnerPos(end); Stack <Astar.Pos> route = mAstar.Search(posStart, posEnd); Queue <int[]> ret = new Queue <int[]>(); while (route.Count() > 0) { ret.Enqueue(ConvertFromInnerPos(route.Pop())); } return(ret); }