Esempio n. 1
0
        private static void ParseRawInputToArrays()
        {
            Guess = new vvi();

            foreach (string t in RawGuessInput)
            {
                Guess.Add(t.Select(x => x - '0').ToList());
            }
        }
Esempio n. 2
0
        private static void GenerateSet_nk(int n, int k, vi comb, vvi set)
        {
            int size = comb.Count;

            if (size == k)
            {
                set.Add(size != 0 ? new vi(comb) : new vi());
                return;
            }

            int last = size == 0 ? -1 : comb[size - 1];

            for (int i = last + 1; i < size + n - k + 1; ++i)
            {
                comb.Add(i);
                GenerateSet_nk(n, k, comb, set);
                comb.RemoveAt(size);
            }
        }
Esempio n. 3
0
        private static CombinationSets GenerateAllSets()
        {
            int n  = GuessAttempts.Guess[0].Count; // length of the number
            var ks = GuessAttempts.RemainCorrectGuesses.GroupBy(c => c)
                     .Select(g => g.First())
                     .Where(c => c != 0)
                     .ToList();

            var dict = new CombinationSets();

            foreach (var k in ks)
            {
                var set = new vvi();
                GenerateSet_nk(n, k, new vi(), set);
                dict.Add(k, set);
            }

            return(dict);
        }