Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

Игра «Быки и коровы»

Игрок отгадывает загаданное число: «бык» — верная цифра на своём месте, «корова» — верная, но не на своём. Отличная задача на строки и циклы.

Что считаем

Сравниваем догадку с загаданным числом посимвольно. Совпала цифра и позиция — бык. Цифра есть в числе, но на другом месте — корова.

secret = '4271'
guess = '4127'

Считаем быков и коров

Идём по позициям через enumerate. Если символы на одной позиции равны — бык; иначе, если цифра вообще встречается в числе, — корова.

bulls = cows = 0
for i, c in enumerate(guess):
    if c == secret[i]:
        bulls += 1
    elif c in secret:
        cows += 1
print(bulls, 'быков', cows, 'коров')

Цикл до победы

Повторяем ввод догадки в цикле while, пока быков не станет столько же, сколько цифр в числе. Загадать случайное число помогает random.

Частые вопросы

Почему числа как строки? Со строкой удобно сравнивать по позициям и проверять «есть ли цифра» через in.

Как избежать повторов цифр в загадке? Соберите число из random.sample('0123456789', 4) — там цифры уникальны.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание