IsWithin() публичный Метод

public IsWithin ( char matrix ) : bool
matrix char
Результат bool
Пример #1
0
        private static bool ExpandConnection(PositionedConnection conn, char[,] artChars)
        {
            Position currentPos            = conn.track[conn.track.Count - 1];
            List <Position.Direction> dirs = new List <Position.Direction>();

            foreach (var direction in PositionedConnection.GetContainedDirections(conn.tailDirection))
            {
                Position newPos = currentPos + direction;
                if (newPos.IsWithin(artChars))
                {
                    Position.Direction thisDir = CharFits(artChars[newPos.x, newPos.y], direction);
                    if (thisDir != Position.Direction.None)
                    {
                        dirs.Add(direction);
                    }
                }
            }
            if (dirs.Count == 0)
            {
                throw new InvalidOperationException("Connection reaches dead end");
            }
            if (dirs.Count > 1)
            {
                throw new InvalidOperationException("Connection reaches splitting point: not allowed");
            }
            Position newPoint = currentPos + dirs[0];

            conn.track.Add(newPoint);
            conn.tailDirection = CharFits(artChars[newPoint.x, newPoint.y], dirs[0]);
            return(!TailAtEnd(artChars[newPoint.x, newPoint.y]));
        }