示例#1
0
 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(" ");
     }
 }
示例#2
0
文件: Matrix.cs 项目: vmed/Algorithms
        /// <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);
        }
示例#3
0
 public bool IsEqual(MatrixNode node)
 {
     return((this == node) || (this.X == node.X && this.Y == node.Y));
 }