Пример #1
0
        /// <inheritdoc />
        public void Solve(SudokuPuzzle puzzle, SudokuState state, ICollection <IEvent> events)
        {
            foreach (var region in puzzle.Regions)
            {
                foreach (var intersected in region.Intersected)
                {
                    intersection.Clear();
                    intersection.AddRange(region.Intersect(intersected));

                    // We found candidate intersections
                    if (intersection.Count > 1)
                    {
                        foreach (var value in puzzle.SingleValues)
                        {
                            var pre = events.Count;
                            Solve(state, region, intersected, value, events);

                            if (pre != events.Count)
                            {
                                return;
                            }
                        }
                    }
                }
            }
        }
Пример #2
0
        public SimpleList <string[]> GetRowsWithValue(SimpleList <string[]> textLines, string value)
        {
            var result = new SimpleList <string[]>();

            result.AddRange(textLines.Where(line => line[0] == value));
            return(result);
        }