public string Print(MatrixNode start, MatrixNode goal, IEnumerable <IWayNode> path) { if (IsWall) { return("W"); } else if (IsEqual(start)) { return("s"); } else if (IsEqual(goal)) { return("g"); } else if (IsInPath(path)) { return("."); } else { return(" "); } }
/// <example> /// |S W| /// |W | /// |W F| /// </example> public MatrixField() { Start = new MatrixNode(this, 0, 0, false); Goal = new MatrixNode(this, 2, 2, false); Matrix = new MatrixNode[3][]; for (var i = 0; i < 3; i++) { Matrix[i] = new MatrixNode[3]; } Matrix[Start.X][Start.Y] = Start; Matrix[Goal.X][Goal.Y] = Goal; Matrix[0][1] = new MatrixNode(this, 0, 2, false); Matrix[0][2] = new MatrixNode(this, 0, 2, true); Matrix[1][0] = new MatrixNode(this, 1, 0, true); Matrix[1][1] = new MatrixNode(this, 1, 0, false); Matrix[1][2] = new MatrixNode(this, 1, 0, false); Matrix[2][0] = new MatrixNode(this, 2, 0, true); Matrix[2][1] = new MatrixNode(this, 2, 1, true); }
public bool IsEqual(MatrixNode node) { return((this == node) || (this.X == node.X && this.Y == node.Y)); }