/// <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); }
/// <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)); }
/// <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(); }