public MemoryGameCard RevealCardByPlayer(MemoryGameBoard i_GameBoard, int?i_CellRowIndex,
                                                 int?i_CellColoumnIndex, ComputerAI i_ComputerMemory)
        {
            if (i_ComputerMemory != null)
            {
                i_ComputerMemory.UpdateComputerMemory((int)i_CellRowIndex, (int)i_CellColoumnIndex, i_GameBoard.BoardMatrix[(int)i_CellRowIndex, (int)i_CellColoumnIndex].CardValue);
            }

            i_GameBoard.BoardMatrix[(int)i_CellRowIndex, (int)i_CellColoumnIndex].IsVisable = true;

            return(i_GameBoard.BoardMatrix[(int)i_CellRowIndex, (int)i_CellColoumnIndex]);
        }
        private static MemoryGameCard revealRandomCardByComputer(MemoryGameBoard i_GameBoard, out int o_RowIndex, out int o_ColoumnIndex, ComputerAI i_ComputerMemory)
        {
            int randomRowIndex    = sr_Random.Next(0, i_GameBoard.BoardHight);
            int randomColumnIndex = sr_Random.Next(0, i_GameBoard.BoardWidth);

            while (i_GameBoard.BoardMatrix[randomRowIndex, randomColumnIndex].IsVisable)
            {
                randomRowIndex    = sr_Random.Next(0, i_GameBoard.BoardHight);
                randomColumnIndex = sr_Random.Next(0, i_GameBoard.BoardWidth);
            }

            i_ComputerMemory.UpdateComputerMemory(randomRowIndex, randomColumnIndex, i_GameBoard.BoardMatrix[randomRowIndex, randomColumnIndex].CardValue);
            i_GameBoard.BoardMatrix[randomRowIndex, randomColumnIndex].IsVisable = true;
            o_RowIndex     = randomRowIndex;
            o_ColoumnIndex = randomColumnIndex;

            return(i_GameBoard.BoardMatrix[randomRowIndex, randomColumnIndex]);
        }