public EStatus MoveTile(Position kTilePosition, out MoveDirection kBlankTileMoveDirection)
        {
            Position kBlankTilePosition = CurrentBoard.BlankTilePosition;

            kBlankTileMoveDirection = GetBlankTileMoveDirection(kBlankTilePosition, kTilePosition);
            if (kBlankTileMoveDirection.Equals(MoveDirection.None))
            {
                return(EStatus.FAILURE);
            }

            CurrentBoard   = CurrentBoard.Move(kBlankTileMoveDirection);
            BoardInputText = BoardToText(CurrentBoard);
            return(EStatus.SUCCESS);
        }