Пишем игру Быки и коровы

Разбираем создание популярной математической игры под названием Быки и Коровы (Guess the number) в Visual Studio. Эта логическая игра нередко попадается среди задач на олимпиадном программировании, где требуется написать программу для игры “угадай число”.

Правила игры Быки и коровы

В классическом варианте игры Быки и Коровы наша задача постараться за несколько попыток определить, какое число из четырёх цифр от 0 до 9 задумал компьютер или другой игрок. После каждой попытки, мы получаем оценку нашего ответа. Каждый раз мы делаем ход из четырёх цифр, где 0 может стоять на первом месте. Если мы угадываем цифру и её точную позицию, мы получаем одного быка. Если позиция неверная, но цифра присутствует в четырёхзначном числе – мы получаем одну корову. Выходит, что полностью отгаданное число – это четыре быка.

Например:
Компьютер задумал 1502.
Игрок сделал ход: 8520.
Компьютер ответил: 1 бык (цифра 5) и 2 коровы (цифры 0 и 2).

Реализация разработки игры быки и коровы на Scratch

Если у тебя мало опыта в разработке игр, можешь попробовать сделать упрощённый вариант в Scratch.

Игра “Угадай число” на Scratch

В данном примере корова загадывает число от 1 до 100 и предлагает игроку отгадать его за семь попыток. После каждой попытки персонаж помогает нам определить, в какую сторону нам двигаться при отгадывании числа.

Реализация разработки игры быки и коровы на C#

В качестве популярных языков для разработки игры Быки и Коровы чаще всего используют JavaScript и Python. Мы же попробуем написать её на C#.

Основными элементами в нашем конструкторе формы является 4 кнопки: Играть заново, Сдаться (или показать загаданное число), Проверить число, или Задумать своё, если есть желание поиграть 1 на 1 с другом. Основных меток у нас тоже 4. Вывод результатов, сам результат, который изначально скрыт и пару меток для отображения правильности ввода. Остальной текст используется лишь для пояснений и отображения заголовков.

Также в игре у нас присутствует два поля ввода. В первый мы будем вводить цифры, чтобы угадать число, второй используем для того, чтобы ввести своё число для угадывания игроком.

Представим новое число, задуманное компьютером, как массив из четырёх цифр, которые не повторяются между собой. Полученный результат запишем в переменную “s”.

private void NewChislo()
        {
            bool contains;
            for (int i = 0; i < 4; i++)
            {
                do
                {
                    contains = false;
                    x[i] = rand.Next(10);
                    for (int k = 0; k < i; k++)
                        if (x[k] == x[i])
                            contains = true;
                } while (contains);
            }
            s = x[0].ToString() + x[1] + x[2] + x[3];
        }

Для проведения подсчёта быков и коров будем сравнивать элементы массива с нашим числом.

    private void SravnitChisla()
    {
        bulls = 0;
        cows = 0;
        char[] ch = textBox1.Text.ToCharArray();
        for (int i = 0; i < 4; i++)
        {
            if (s.Contains(ch[i]))
            {
                if (s[i] == ch[i])
                    bulls++;
                else
                    cows++;
            }
        }
    }

Результат будем выводить в отдельный Label:

    private void RezultatShow()
    {    
        if (bulls == 3)
        {
            label2.Text += textBox1.Text + ", быков - " + bulls + ", коров - " + cows + " - ОТЛИЧНЫЙ ХОД\n"; 
        }
        else { 
            label2.Text += textBox1.Text + ", быков - " + bulls + ", коров - " + cows + "\n"; 
        }
    }

Полный исходник игры и саму игру Быки и коровы можно скачать по кнопкам ниже:

+1
3
+1
0
+1
2
+1
0
+1
1
+1
0
не в сети 2 дня

Admin

Администратор портала GameCreating.ru
Авторизация
*
*

С помощью

Регистрация
*
*
*

С помощью

Генерация пароля