private Board ConvertWorkingSetIntoBoard(CellStatus[,] workingSet)
        {
            var generated = new Board(_gameConfiguration);

            workingSet.Foreach((row, column) =>
            {
                if (workingSet[row, column] == CellStatus.ShipPart)
                    generated.BoardRepresentation.Add(new BoardCoordinate(row, column));
            });

            if (!generated.IsValid)
            {
                throw new Exception("Generated board is invalid!");
            }

            return generated;
        }
        private Board ConvertWorkingSetIntoBoard(CellStatus[,] workingSet)
        {
            var generated = new Board(_gameConfiguration);

            workingSet.Foreach((row, column) =>
            {
                if (workingSet[row, column] == CellStatus.ShipPart)
                    generated.BoardRepresentation.Add(new BoardCoordinate(row, column));
            });

            string validationError = generated.Validate();
            if (validationError != null)
            {
                Debug.Print(validationError);
                Debug.Print(generated.PresentBoardGraphically());
                throw new Exception("Generated board is invalid!");
            }

            return generated;
        }