Exemple #1
0
        /// <summary>
        /// Parses options that the chess engine supports. They will be added to the Options property.
        /// </summary>
        /// <param name="data"></param>
        private void ParseOption(string data)
        {
            var containsDefaultOption = data.Contains("default");
            var containsMaxOption     = data.Contains("max");
            var pattern = @"name (?<name>.*) type (?<type>.*)"; // Start off with the simplest pattern.

            //
            // If the data contains max then all options are included.
            if (containsMaxOption)
            {
                pattern = @"name (?<name>.*) type (?<type>.*) default (?<default>.*) min (?<min>.*) max (?<max>.*)";
            }
            else if (containsDefaultOption)
            {
                pattern = @"name (?<name>.*) type (?<type>.*) default (?<default>.*)";
            }

            var options = Regex.Match(data, pattern);

            if (options.Groups != null)
            {
                var optionData = new OptionData();
                if (options.Groups["name"].Success)
                {
                    optionData.Name = options.Groups["name"].Value;
                }
                if (options.Groups["type"].Success)
                {
                    optionData.OptionType = options.Groups["type"].Value;
                }
                if (options.Groups["default"].Success)
                {
                    optionData.Default = options.Groups["default"].Value;
                }
                if (options.Groups["min"].Success)
                {
                    optionData.Min = options.Groups["min"].Value;
                }
                if (options.Groups["max"].Success)
                {
                    optionData.Max = options.Groups["max"].Value;
                }
                Options.Add(string.Format("{0}{1}", OPTION, Regex.Replace(optionData.Name, @"\s+", string.Empty)), optionData);
            }
        }
Exemple #2
0
        /// <summary>
        /// Adds the Id option's name component.
        /// </summary>
        /// <param name="data"></param>
        private void ParseIdName(string data)
        {
            var name = new Regex("id name ");

            if (name.IsMatch(data))
            {
                var value = name.Split(data);
                if (value.Length > 1)
                {
                    var optionData = new OptionData();
                    optionData.Name = ID;
                    optionData.Id   = new IdData {
                        Name = value[1]
                    };
                    Options.Add(ID, optionData);
                }
            }
        }