Esempio n. 1
0
        public bool Validate(out string message)
        {
            var errorMessages = new StringBuilder();

            if (position is XYPosition xyPosition)
            {
                var    boardPositionValidation = new BoardPositionValidation(width, height, position);
                string boardPositionValidationMessage;
                if (!boardPositionValidation.Validate(out boardPositionValidationMessage))
                {
                    errorMessages.Append(boardPositionValidationMessage + ", ");
                }

                if (size <= 0)
                {
                    errorMessages.Append($"Size '{size}' cannot be negative, ");
                }

                string orientationAndSizeMessage;
                if (!ValidateOrientationAndSize(xyPosition, out orientationAndSizeMessage))
                {
                    errorMessages.Append(orientationAndSizeMessage + ", ");
                }

                string existingBattleshipConfigurationsMessage;
                if (!ValidateExistingBattleshipConfigurations(xyPosition, out existingBattleshipConfigurationsMessage))
                {
                    errorMessages.Append(existingBattleshipConfigurationsMessage + ", ");
                }
            }

            message = errorMessages.ToString().Trim(' ', ',');
            return(errorMessages.Length == 0);
        }
Esempio n. 2
0
        public bool ValidateHitPosition(string input, out string message)
        {
            try
            {
                var position = Helper.Convert(input);

                var validation = new BoardPositionValidation(CurrentPlayer.Board.Width, CurrentPlayer.Board.Height, position);
                return(validation.Validate(out message));
            }
            catch (Exception ex)
            {
                message = ex.Message;
                return(false);
            }
        }