コード例 #1
0
        public void Find6and0()
        {
            var hs1  = new HashSet <char>(Digits[1].ToCharArray());
            var coll = UniqueValues.Where(uv => uv.Key.Length == 6).ToList();

            foreach (var uv in coll)
            {
                var hs = new HashSet <char>(Digits[8].ToCharArray());
                hs.ExceptWith(uv.Key.ToCharArray());
                char ch = hs.Single();
                if (hs1.Contains(ch))
                {
                    Digits.Add(6, uv.Key);
                    C = ch;
                }
                else if (Digits[9] == uv.Key)
                {
                    // 9 already found
                    ;
                }
                else
                {
                    // D
                    D = ch;
                    Digits.Add(0, uv.Key);
                }
            }
        }
コード例 #2
0
        public void FindGand9()
        {
            var coll = UniqueValues.Where(uv => uv.Key.Length == 6).ToList();

            foreach (var uv in coll)
            {
                var hs  = new HashSet <char>(uv.Key.ToCharArray());
                var chs = new List <char>(Digits[4].ToCharArray());
                chs.Add(A);
                hs.ExceptWith(chs);
                if (hs.Count == 1)
                {
                    G = hs.Single();
                    Digits.Add(9, uv.Key);
                    return;
                }
            }
        }
コード例 #3
0
        public void FindTwoThreeFive()
        {
            var hs1  = new HashSet <char>(Digits[1].ToCharArray());
            var coll = UniqueValues.Where(uv => uv.Key.Length == 5).ToList();

            foreach (var uv in coll)
            {
                var hs = new HashSet <char>(uv.Key.ToCharArray());
                if (hs1.IsProperSubsetOf(hs))
                {
                    Digits.Add(3, uv.Key);
                }
                else if (hs.Contains(C))
                {
                    Digits.Add(2, uv.Key);
                }
                else
                {
                    Digits.Add(5, uv.Key);
                }
            }
        }