public WayFinder(MovePoint start, int mov) { this.Start = start; this.Mov = mov; _arrayList = new Dictionary <Point2D, MovePoint>(1 + 2 * mov * (mov + 1)); //_arrayList.Add(start.Location,start); }
public void Add(MovePoint mp) { if (this._arrayList.ContainsKey(mp.Location)) { if (this._arrayList[mp.Location].CompareTo(mp) > 0) { this._arrayList[mp.Location] = mp; } } else { this._arrayList.Add(mp.Location, mp); } }
public IEnumerable <MovePoint> RouteTo(Point2D p) { if (!_arrayList.ContainsKey(p)) { return(null); } Stack <MovePoint> temp = new Stack <MovePoint>(); MovePoint mp = _arrayList[p]; temp.Push(mp); while (mp.Parent != null) { temp.Push(mp.Parent); mp = mp.Parent; } return(temp); }