Войти Создать аккаунт

Игра «Быки и коровы» · Шаг 5 из 5

Отсев

Компьютер назвал 1234, вы ответили «0 быков, 2 коровы». Что это даёт? Загаданное — одно из тех чисел, которые на месте вашего дали бы ровно такой же ответ. Все остальные можно вычеркнуть — и так после каждого хода, пока не останется одно.

Что сделать

Вычеркните из списка компьютера числа, которые не могли дать такой ответ на его ход.

Что приходит

  • kandidaty — список чисел, которые ещё могут быть загаданы; менять его нельзя

  • hod — число, которое назвал компьютер

  • otvet — ваш ответ на него, пара (быки, коровы)

  • byki_korovy — ваш шаг 1, приходит аргументом

Что вернуть

Новый список тех кандидатов, для которых byki_korovy(кандидат, hod) равно otvet, в том же порядке.

Допишите функцию otsev в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

В игре

Так компьютер отгадывает ваше число: после каждого ответа он зовёт otsev и печатает, сколько подходящих чисел осталось. Решите шаг — и он будет угадывать за пять-шесть ходов, а не за сотни.

Без этого шага: компьютер не делает выводов из ответов — просто вычёркивает то, что уже спрашивал.

Пример

Кандидаты — ["1234", "5678", "9012"], компьютер назвал "1234" и услышал «0 быков, 0 коров». Число 1234 на месте загаданного дало бы четыре быка — его вычёркиваем. Функция возвращает ["5678", "9012"].

В проверке вместо настоящего подсчёта стоит простая подмена: она говорит «4 быка», если числа равны, и «ничего» иначе.

Готовая игра →

Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.