Игра быки-коровы. Угадаю Ваше число за 6 ходов!

  1. Вспомогательные функции или структура программы Быки-Коровы
  2. Об алгоритме игры Быки и Коровы
  3. Перспективы прикладного применения

Правила игры описывать не стану Все знают!
Или смотрите здесь https://orenstudent.ru/bulls_cows.htm

Вспомогательные функции или структура программы Быки-Коровы


Умение подсчитывать «быков-коров», в задаваемых противником вопросах не интересно. В Интернете куча примеров…

Решето, по отсеиванию «забракованных» перестановок после каждого ответа противника задача для первокурсников и на форумах тоже встречается…

А вот найти алгоритм, который бы выдавал «следующий оптимальный вопрос», мне в Интернете найти не удалось. Даже сервисов, которые решали бы (угадывали бы) число… не нашел. Будем считать, не повезло, так как в Википедии игра названа «легкой».

Нет, я не претендую на первенство. Понятно, что до меня и после меня, достаточно упорные или «упертые» программисты с этой задачей справятся легко.

Просто, хочу в очередной раз, доказать себе и народу, что компьютер считает варианты намного быстрее. Поэтому, создать сервис «Игры Быки-Коровы», который будет всегда выигрывать (или, в худшем случае, сводить в «Ничью») реально, а играть с такими сервисами человеку - бессмысленно!



Об алгоритме игры Быки и Коровы


Я могу доказать, что на седьмом ходе, программа не вопрос задает, а уже 100% результат сообщает. Тем не менее, противник получает право на седьмой ход. С правилами не поспоришь.

Об алгоритме игры Быки и Коровы
Рис.1        Об алгоритме игры Быки и Коровы

Решатель - это симбиоз "решета" по отсеиванию перестановок и умения задавать умно-оптимальные вопросы.

А еще необходимо перепроверять пользователя, чтобы он не ошибся в подсчете быков и коров

6-ой ответ противника на вопрос - это максимум, чтобы в решете осталась одна перестановка (даже при самом плохом раскладе). Если вопросы задаешь «умные». А за пять ходов-ответов - это невозможно гарантировать. Только, на удачу! Но, на удачу, и с первого хода может получиться…

Флажок «с гарантией за 6 ходов» можно снимать, если играете с человеком, а не с другой программой или сервисом. Быстрее выиграете… Но с противником-машиной такие вольности не пройдут.

Скачать ехе-файл для тестирования



Перспективы прикладного применения


Получается, что эта программа, только для любителей «обманывать» неосведомленных игроков. Пользуйтесь уважаемые «искатели нового».

Хотя, может кто-нибудь придумает прикладное применение этому алгоритму (приложению).

Ведь «маленькие кусочки информации» машина увязывает в одно целое и на основании этого получается «достаточная информация» для принятия решения о следующем вопросе (остальные функции тривиальны).

Хотелось бы такую идею услышать и поучаствовать в ее реализации.



Другие примеры на тему «Компьютерные игры»







Автоматизация документов MS Office. orenstudent.ru
Тестирования и применение цифровых технологий

Program code