示例#1
0
        public static void FindSequence(Sequence first,Sequence second,int bulls,int cows,int index,int temp,int item)
        {
            //B- C Same
            if (bulls < second.countOfbulls && second.countOfCows == cows)
            {
                //Swap
                first.Swap(second, index, item);
                first.Remove(item);
                second.bulls[index] = temp;
                bulls = bulls + 1;

            }

            //B+ C Same
            else if (bulls > second.countOfbulls && second.countOfCows == cows)
            {
                first.Remove(item);
                first.Remove(temp);
                second.bulls[index] = item;
            }
            //B same C+
            else if (second.countOfbulls == bulls && cows > second.countOfCows)
            {
                second.cows[index] = item;
            }
            //B same C-
            else if (second.countOfbulls == bulls && cows < second.countOfCows)
            {
                first.Swap(second, index,item);
                first.Remove(item);

                second.cows[index] = temp;
                cows = cows + 1;
            }

            second.countOfCows = cows;
            second.countOfbulls = bulls;
        }
示例#2
0
        public static void GenerateNextSequence(Sequence first,Sequence second)
        {
            foreach(int item in first.digits)
            {
                //Swap
                int index = FindPosition(second);
                int temp = second.digits[index];
                second.Swap(first, index, item);

                Console.WriteLine(string.Join(",", second.digits));
                Console.WriteLine("Enter the bulls");
                int bulls = Convert.ToInt32(Console.ReadLine());

                Console.WriteLine("Enter the cows");
                int cows = Convert.ToInt32(Console.ReadLine());

                FindSequence(first, second, bulls, cows, index, temp, item);

            }
        }