Игра "Быки и коровы" - C#
Формулировка задачи:
Помогите, пожалуйста, написать программу реализующую игру "Быки и коровы" методом решета.
Программа должна позволять играть человеку против компьютера. Игрок загадывает четырехзначное число, все цифры которого различны (первая цифра числа отлична от нуля). Компьютеру необходимо разгадать задуманное число. Каждый ход сообщает компьютеру о количестве "быков" и "коров" в загаданном числе ("бык" - цифра есть в записи задуманного числа и стоит в той же позиции, что и в задуманном числе; "корова" - цифра есть в записи задуманного числа, но не стоит на той же позиции, что и в задуманном числе).
Например, если задумано число 3275 и названо число 1234, получаем в названном числе одного "быка" и одну "корову". Очевидно, что число будет отгадано в том случае, если имеем 4 "быка".
В книге С.М. Окулова «Программирование в алгоритмах» нашла куски кода на Паскале.
Прикрепляю учебник. (стр. 109)
Инициализацию двух массивов написала
const int Pmax=4536; string[] A = new string [Pmax];//множество bool[] B = new bool [Pmax];// массив флажков, 1 - значит подходит, 0 - исключено int t=0; for (int i = 1000; i <= 9999; i++) { int x = i; int a = x % 10; x /= 10; int b = x % 10; x /= 10; int d = x % 10; x /= 10; if (a != b && a != d && a != x && b != d && b != x && d != x) { A[t] = Convert.ToString(i); //Console.WriteLine(A[t]); t++; } } for (int i = 0; i < t-1; i++) { B[i] = true; // по умолчанию все числа подходят }
Решение задачи: «Игра "Быки и коровы"»
textual
Листинг программы
uint num; string number; while (true) { Console.WriteLine(); Console.WriteLine("Введите четырехзначное число "); number = Console.ReadLine(); if (uint.TryParse(number, out num)) { if (number.Length != 4) { Console.WriteLine("Введите четырехзначное число!"); break; } break; } else { Console.WriteLine("Введите целое, положительное число!"); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д