public void AddCellRecursive(MyCell c) { this.MyCellList.Add(c); var r = c.RightNeighbour; var b = c.BelowNeighbour; MyPath second = null; if (b == null && r == null) { return; //end } else if (r == null) { second = this; } else { second = this.Clone(); this.myGrid.MyPathList.Add(second); this.AddCellRecursive(r); } if (b == null) { this.myGrid.MyPathList.Remove(second); } else { second.AddCellRecursive(b); } }
public int FindPaths() { this.MyPathList.Clear(); var p = new MyPath(this); this.MyPathList.Add(p); var c = new MyCell(this, 0, 0); p.AddCellRecursive(c); return(MyPathList.Count); }