예제 #1
0
        /// <summary>
        ///     Sets the value of the cell specified with row and column numbers.
        /// </summary>
        /// <param name="value">The value between 1-9 to set to the cell specified.</param>
        /// <param name="cellPosition">The row-column number of the cell specified.</param>
        public void SetCellValue(int value, Cell.RCPosition cellPosition)
        {
            // Calculate the index from the Row-Column position.
            var cellIndex = (cellPosition.Row - 1) * TOTAL_ROWS + cellPosition.Column - 1;

            SetCellValue(value, cellIndex);
        }
예제 #2
0
        /// <summary>
        ///     Gets Cell specified with row and column numbers.
        /// </summary>
        /// <param name="cellPosition">The row-column number of the cell specified.</param>
        public Cell GetCell(Cell.RCPosition cellPosition)
        {
            // Calculate the index from the Row-Column position.
            var cellIndex = (cellPosition.Row - 1) * TOTAL_ROWS + cellPosition.Column - 1;

            return(GetCell(cellIndex));
        }
예제 #3
0
        /// <summary>
        /// Moves the white cursor
        /// </summary>
        /// <param name="direction"></param>
        public void MoveCursor(MoveDirection direction)
        {
            switch (direction)
            {
            case MoveDirection.Up:
                if (CursorPosition.Row != 1)
                {
                    CursorPosition = new Cell.RCPosition(CursorPosition.Row - 1, CursorPosition.Column);
                }
                break;

            case MoveDirection.Down:
                if (CursorPosition.Row != 9)
                {
                    CursorPosition = new Cell.RCPosition(CursorPosition.Row + 1, CursorPosition.Column);
                }
                break;

            case MoveDirection.Left:
                if (CursorPosition.Column != 1)
                {
                    CursorPosition = new Cell.RCPosition(CursorPosition.Row, CursorPosition.Column - 1);
                }
                break;

            case MoveDirection.Right:
                if (CursorPosition.Column != 9)
                {
                    CursorPosition = new Cell.RCPosition(CursorPosition.Row, CursorPosition.Column + 1);
                }
                break;
            }
            WriteSudoku();
        }