public void Update(IEnumerable <Stone> line, LineType lineType, int index)
        {
            var x = line.ToList();

            IList <Ply> tacticals;


            var openPatternCounts = openPattern.Search(x, out tacticals);

            if (openPatternCounts.BlackFour > 0 || openPatternCounts.WhiteFour > 0 ||
                openPatternCounts.BlackThree > 0 || openPatternCounts.WhiteThree > 0)
            {
                //isTactical = true;
            }

            var closedPatternCounts = closedPattern.Search(x, out tacticals);

            if (closedPatternCounts.BlackFour > 0 || closedPatternCounts.WhiteFour > 0)
            {
                //isTactical = true;
            }

            patternSummary.Subtract(result[lineType][index]);
            result[lineType][index] = new PatternSummary(openPatternCounts, closedPatternCounts);
            patternSummary.Add(result[lineType][index]);
        }
        public void Subtract(PatternSummary other)
        {
            if (other == null)
            {
                return;
            }

            OpenPatternCounts.Subtract(other.OpenPatternCounts);
            ClosedPatternCounts.Subtract(other.ClosedPatternCounts);
        }
 public void Add(PatternSummary other)
 {
     OpenPatternCounts.Add(other.OpenPatternCounts);
     ClosedPatternCounts.Add(other.ClosedPatternCounts);
 }