Разное

Быки и коровы правила игры: МетаШкола — Игра — Быки и коровы

Содержание

правила игры, суть, вариации, необходимый инвентарь для игры

Слыша название «Быки и коровы» впервые, о цифрах и логике думаешь в последнюю очередь. Зря. Так называется математическая настольная игра, предшественница MasterMind («Властелина разума»), уходящая корнями аж в Англию XIX века.

Содержание

  • 1 Что нужно для игры
  • 2 Вариации игры
    • 2.1 Игра с цветом – «Властелин разума»
    • 2.2 Игра со словами
  • 3 Правила игры

Что нужно для игры

Существуют наборы для игры в MasterMind и его модификации. Туда входят:

  • фишки разных цветов;
  • поле с ячейками для фишек.

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

Пример партии в классическую версию

Вариации игры

За долгую историю «Быков и коров», кроме классической логической игры с числами, суть которой – расшифровка кода соперника, появилось еще несколько вариантов:

Игра с цветом – «Властелин разума»

В них числовой код заменен на последовательность из разноцветных фишек.

В 1971 году британская компания Invicta Plastics пошла на риск, решив издать увиденное на Нюренбургской Международной выставке игрушек творение сорокаоднолетнего израильского спеца по телекоммуникациям Мордехая Мейровица, придуманное за год до этого. Так родилась самая известная последовательница «Быков и коровок».

MasterMind – усовершенствованная версия настольной игры

В оригинальной версии код состоял из 4-х цветов, а в комплект входили фишки 6 цветов, но уже за первые годы жизни игра начала обзаводиться вариациями. В Grand Mastermind стало нужно угадывать еще и форму фишек. В Mastermind Challenge число цветов возросло до 8, код стал пятизначным, но важнее, что игроки одновременно отгадывали коды друг друга. В New Mastermind, 2004 года, появилась возможность играть впятером. Вышли детская версия, появился Mastermind для компьютеров. Это – исключая аналоги, выходившие под другими названиями, такие как IQ Эврика, фирмы Bondibon.

Правила:

  1. Загадывающий выставляет на торце поля или за специальной ширмой код из фишек разных цветов.
  2. Дешифровщик выкладывает вариант комбинации.
  3. В соответствии с конкретной версией, задействуются или расположенные по разным сторонам поля выдвижные стержни с делениями, или черные и белые фишки.
  4. При использовании стержней: если совпал только цвет –белый стержень выдвигается на число делений, равное угаданным цветам, а если верна и позиция – по аналогичной схеме игрок выдвигает также красный стержень с другой стороны поля.
  5. При использовании фишек: при совпадении цвета выставляется белая фишка, при совпадении цвета и позиции – нужно брать и выставлять черную. Порядок черных и белых фишек случайный.
  6. После подсчета совпадений, отгадывающий делает следующую попытку. Число попыток различается в зависимости от версии.
  7. Игра может вестись на очки, тогда каждая строчка фишек будет приносить очко загадавшему.

Слишком много случайности? Хотите проверить эрудицию? Тогда больше подойдет другой вариант.

Игра со словами

Тут, как можно догадаться, отгадываются слова. Правила следующие:

  1. Сначала выбирается уровень сложности, т.е. количество букв в загаданных словах, допустимость повторов. Большее число знаков, их повторение усложняют игру. Чаще всего букв от 4-х до 6. Пример: слово «алфавит» сложнее, чем слово «мыло», т.к. состоит из 7 букв, а «а» присутствует дважды. Слово должно стоять в именительном падеже, единственном числе.
  2. Ведущий загадывает слово.
  3. Отгадывающий озвучивает свой вариант.
  4. Ему сообщают количество «быков» (отгаданных символов, стоящих на своем месте) или «коров» (верных символов, положение которых отличается).
  5. Буква считается столько раз, сколько раз она встречается в предложенном вторым играющим варианте.
  6. Буквы-дублеры считаются отдельно друг от друга.

Цель игры – отгадать слово.

Правила игры

Вернемся от разновидностей к оригиналу. Итак, каковы принципы игры в обычных «Быков и коров»?

Участвует двое. Игра может вестись в разных режимах:

  • игроки занимаются параллельной дешифровкой кодов друг друга;
  • один из участников загадывает комбинацию, следит за совпадениями с ней варианта разгадывающего.

Порядок действий игроков следующий:

  1. Ведущий (или оба участника, при первом варианте) загадывает четырехзначное число, без повтора цифр.
  2. Оппонент предлагает первый вариант решения.
  3. Загадавший сверяется со своей комбинаций и озвучивает количество «коров» и «быков». К примеру, было загадано число 5237. Вариант разгадывающего – 2839. Совпало две цифры: 2 и 3, причем 3 – на верной позиции. Итого: игрок получает одну «корову» (за 2) и одного быка (за 3). Что важно: ошибочная подсказка, т.е. выдача зашифровавшим участником отгадывающему неправильного количества «коров» и «бычков», означает поражение такого участника. Подобная хитрость тут не пройдет.
  4. Теперь ход или переходит ко второму игроку, или единственный дешифровщик продолжает решать загадку.
  5. Чтобы выиграть нужно или просто отгадать число, или сделать это первым. Когда первым находит нужную комбинацию тот, с кого игра начиналась, то у второго остается одна попытка, чтобы попытаться переломить ход игры.

На первый взгляд – ничего сверхсложного. Вот только преданные поклонники считают иначе. Они выстраивают собственные тактики, создают математические алгоритмы, чтобы расшифровать код быстрее. Это не просто «морской бой с цифрами», а игра, которая может принести ощутимую пользу, помочь, решая вроде бы несложные задания, развить стратегическое мышление, прокачать свой скилл математики.

Игра «Быки и коровы» на языке Python

Всем доброго времени суток. Как-то раз на получении дополнительного образования преподаватель решил проверить знания студентов и предложил написать игру «Быки и коровы». Игру я написал довольно быстро и даже успел сделать так, чтобы игра играла сама в себя через встроенную библиотеку random.

Что такое «Быки и коровы»

Это логическая игра. В ходе неё игрок за несколько попыток должен. понять, что загадал соперник (это могут быть числа, символы, слова и так далее). После каждой попытки задумавший игрок выставляет «оценку»: сколько букв/цифр/символов угадано без совпадения с позициями (то есть показывает количество «коров») и сколько угадано точно, вместе с расположением (то есть показывает количество «быков»).

Идея

  1. Сгенерировать два разных числа.
  2. Найти количество «коров» и «быков» в каждом числе.
  3. С помощью цикла for пройтись по числу:
    3.1 Если цифра есть в списке индексов «быков», то не трогать эту цифру.
    3.2 Если цифра есть в списке индексов коров, то поменять рандомно эту цифру с другой «коров», если такие имеются
    3.3 Если цифра ни «корова» и не «бык», то рандомно сгенерировать новую цифру.
  4. Получить два одинаковых числа.

Реализация игры «Быки и коровы»

Создаём переменные и списки для дальнейшей работы с ними. Генерируем уникальные числа. Для генерации уникального числа пишем функцию, которая будет проверять переданное ему число.

def is_valid(number):
""" Проверка числа на уникальность. Все 4 цифры числа должны быть разные """
  try:
    # переводим наше число в список из символов.
    # сравниваем с множеством.
    # (в множестве нет повторяющихся символов)
    number_list = list(str(number))
    if len(set(number_list)) == 4:
      return True
    return False
  except:
    return False
# переменные
number_guess = 0  # загаданное число
number_computer = 0  # число, которое нужно отгадать
n = 0  # кол-во попыток
# списки
n_c = []
n_b = []
# генерируем число, которое нужно отгадать
while not is_valid(number_guess):
  number_guess = random.randint(1000, 9999)
# генерируем число от которого наша программа будет отталкиваться
while not is_valid(number_computer):
  number_computer = random. randint(1000, 9999))

Пишем функция для нахождения «коров» и «быков» в числе.

def check(number_guess, number_computer):
    """ Находим количество коров и быков в числе """

    # индексы коров и быков
    n_c, n_b = [], []

    try:
        # переводим наши числа в список из символов.
        number_guess_list = list(str(number_guess))
        number_computer_list = list(str(number_computer))

        # проходимся по числ
        for index in range(len(number_guess_list)):

            # если в разных числа в одинаковых
            # индексах цифры ровны,   то это бык
            if number_computer_list[index] == number_guess_list[index]:
                n_b.append(index)
            # если в числах есть одинаковые цифры, но на разных местах, то это корова
            elif number_guess_list[index] in number_computer_list:
                n_c.append(index)

        # возвращаем списки индексов коров и быков
        return n_c, n_b

    except:
        return n_c, n_b

Пишем функцию, которая будет пересобирать число из имеющихся данных.

def game(number_guess, n_c, n_b):
    """ Ф-я, пересоборки числа из имеющихся данных """

    # переводим наше число в список из символов
    number_guess_list = list(str(number_guess))

    # проходимся по списку number_guess_list
    for index in range(len(number_guess_list)):
        # если индекса цифры нет в списке индексов быков,
        # но есть в в списке коров
        if index not in n_b and index in n_c:
            # рандомным способом переставляем
            index_random = n_c[random.randint(0, len(n_c)-1)]
            number_guess_list[index], number_guess_list[index_random] = number_guess_list[index_random], number_guess_list[index]
        # если индекса цифры нет ни в одном из списков
        if index not in n_b and index not in n_c:
            number_guess_list[index] = str(random.randint(1, 9))
            while not is_valid(int(''.join(number_guess_list))):
                number_guess_list[index] = str(random. randint(1, 9))

    return int(''.join(number_guess_list))

Пишем главный цикл, который будет работать, пока не будет 4 «быка». В этом цикле пересоберем наше число и по новому числу получаем новый список индексов «коров» и «быков».

# главный цикл, работает, пока не будет 4 быка, то есть
# два числа не будут ровны между собой

# получаем списки индексов коров и быков
n_c, n_b = check(number_guess, number_computer)

while len(n_b) != 4:
    # пересоберем число из имеющихся данных
    number_guess = game(number_guess, n_c, n_b)

    # получаем списки индексов коров и быков
    n_c, n_b = check(number_guess, number_computer)
    n += 1
    print(f"Попытка: {n}; Число: {number_guess}; Число, которое нужно отгадать: {number_computer}")

print(number_guess)

КОНЕЦ

Надеюсь данная статья была вам полезна. Буду рад прочитать критику в комментариях.

код на github: https://github. com/alex-sandalov/cow

Реклама на Tproger: найдем для вас разработчиков нужного стека и уровня.

Подробнее

Реклама на tproger.ru

Загрузка

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


©dereksiz.org 2022
әкімшілігінің қараңыз

Игра заключается в том, что один из игроков загадывает четырехзначное число, цифры которого не повторяются, например 0123, 5784, и т.д. А вот число 8908 — не годиться, т.к. состоит из двух цифр «8». Второй игрок должен угадать это число, он выдвигает свои предположения, например: «Это число 0123?». Первый игрок, говорит сколько в предложенном числе быков и коров. Быки — это те цифры, которые стоят в предложенном числе на той же позиции, что и в загаданном. Коровы — это те цифры, которые есть и в предложенном числе и в загаданном, но на разных позициях. Например, если загаданное число 8301, а предложенное 1208, то в предложенном числе будет один бык — это цифра «0», и две коровы, это цифры «8» и «1». Игрок, который угадывает, должен проанализировать все полученные данные, и предложить правильное число.

Теперь рассмотрим данную программу. Она состоит из пяти вкладок: «Угадывает компьютер», «Угадывает человек», «тест», «Справка», «Создатели». Разберем все вкладки по очереди.

Вкладка: «Угадывает компьютер». Здесь компьютер выступает в роли угадывающего, а пользователь — в качестве загадывающего.

Как же компьютер угадывает? Компьютер генерирует все возможные варианты, перед первым вопросом всего 5040 вариантов. Анализируя сколько быков и коров в предложенном числе, компьютер оставляет только те варианты, которые ещё могут быть правильными. Например, если в числе 0123 — 0 быков, и 0 коров, то очевидно, что числа 1230,3210, и т.д. — уже не могут быть загаданными.

При загрузке доступны кнопки «Новая игра» и «Выход». Также доступны переключатели «стиль игры». Для начала нужно выбрать стиль. Это правила, по которым компьютер будет предлагать числа. Рассмотрим все стили.

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

Стиль «наугад». Компьютер из имеющихся у него вариантов предлагает случайное число.

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

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

Для начала игры следует нажать кнопку «Новая игра» — логично, не правда ли? Компьютер сразу же предлагает число, согласно выбранному стилю. Но если сразу ввести количество быков и коров в соответствующие ячейки и нажать «Далее» — то произойдет ошибка, и программа выдаст предупреждение. Почему? Обратите внимание на галочку «включить проверку», по умолчанию она нажата. Для чего нужна эта проверка? В поле «загаданное вами число:» нужно ввести свое число, по умолчанию в этом поле написано «число». При нажатии кнопки далее компьютер проверяет, как вы посчитали быков и коров, если не доверяете машине — просто уберите галочку, и проверка сразу станет неактивной. Ну, вот собственно и все. Хотите с проверкой, хотите без — считаете сколько быков и коров в предложенном компьютером числе, вводите в соответствующие поля, нажимаете далее, и так пока компьютер не угадает. После можно начать играть заново.

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

Ход игры. Здесь отображается все то, что происходит в игре.

Перейдем на следующую вкладку «Угадывает человек». Теперь вам предстоит угадывать число, загаданное машиной. Здесь все просто: начинаем игру, вводим свой вариант, жмем далее, смотрим, сколько у нас быков и коров, и думаем над следующим вариантом. Если уж число совсем не угадывается, жмем «Надоело», компьютер говорит, что же он загадал, и на этом игра останавливается…

Вкладка «тест». Эта вкладка будет интересна разработчикам и любителям статистики. Здесь тестируются различные стили игры компьютера. При запуске теста, компьютер «угадывает», все возможные числа (всего таких 5040), после он показывает сколько, в среднем, понадобилось вопросов на число, а также, сколько чисел было угадано за определенное количество вопросов.

Повтор опытов. Что же это такое? и зачем оно надо? Ползунок имеет 10 положений, он отвечает за то, сколько раз будет прогоняться одно и тоже число. Таким образом, если ползунок установлен на «1», но числа будут прогоняться по одному разу, а если на «2», то уже по два раза, т.е. всего будет 5040*2 прогона. Зачем это? Для точности. Единственно, повтор не нужен для

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

Описывать две последние вкладки нет смысла, так как их названия говорят сами за себя, да и функциональностью они не богаты.

Каталог: doc
doc -> Оқулық. қамсыздандыру: Жұмыс дәптері
doc -> Регламенттерін бекіту туралы «Әкімшілік рәсімдер туралы»
doc -> Регламенттерін бекіту туралы «Әкімшілік рәсімдер туралы»
doc -> Мазмұны: Қалыптасқан қазақстан -2050 стратегиясы
doc -> Қызылорда облысының 2015 жылғЫ Әлеуметтік-экономикалық даму нәтижелері
doc -> Бекітемін Тарих және шетелдік студенттермен жұмыс факультетінің деканы
doc -> Программа по истории Казахстана: программа для 5-9 кл. / Б. К. Абдугулова. Алматы, 1999. 42 с. Абдугулова, Б. К. «Воспитание учащихся в духе дружбы народов при изучении истории ссср»

жүктеу/скачать 33.5 Kb.


Достарыңызбен бөлісу:

Как играть в быков и коров с помощью Python | by Shian Liao

Старая игра на угадывание чисел с автоматическим решением

Источник: https://en. wikipedia.org/wiki/Bulls_and_Cows

Bulls and Cows — это игра на угадывание чисел, с которой я впервые познакомился более 20 лет назад, когда Я все еще писал VBA в Excel. Я даже создал версию для Excel, которая до сих пор работает (раньше я работал с Эриком Ляо еще в 2001 году, но с 2005 года перешел на свое официальное имя Шайан Ляо):

Авторские права принадлежат автору

), я решил вернуться к этой игре на угадывание чисел с моим новым любимым языком программирования, Python.

Игра официально называется Bulls and Cows , и в нее обычно играют два игрока: игрок A составляет 4-значное число без повторяющихся цифр, а игрок B пытается угадать секретное число раунд за раундом.

За каждое предположение игрок А предоставляет игроку Б оценку в виде «1 бык 2 коровы», что означает, что из 4 угаданных цифр игрок Б имеет 1 правильную цифру на правильном месте и 2 правильные цифры на неправильных позициях.

Например, если секретное число 5213, а игрок Б угадал 1234, он получит счет «1 бык 2 коровы», потому что число 2 находится в неверном положении, а числа 1 и 3 верны, но появились в неправильных позициях. .

Игрок Б должен набрать очки «4 быка 0 коров», что означает, что он правильно угадал все число.

Игрок А обычно играет с помощью компьютера, и счет «1 бык 2 коровы» обычно записывается как «1A2B» для краткости.

По сравнению с Wordle , Bulls and Cows на самом деле намного сложнее, потому что по каждой оценке предоставляется очень ограниченная информация. Например, в приведенном выше случае 1234 (1 бык 2 коровы) вы не будете знать, какая цифра — бык, а какие две цифры — коровы.

А если захочешь, будет еще сложнее. Например, вместо 4-значного секретного номера можно использовать 5 и более цифр. Вместо 4 цифр без дубликатов вы можете разрешить повторяющиеся цифры в номере. Вы даже можете заменить 4-значные числа словами из 4 букв.

Генерация случайного числа

Первый логический шаг — генерация 4-значного случайного числа, например:

0037 принимает начальное целое число и конечное целое число, и оба включают, в отличие от , диапазон  .  Также вы хотите начать с 1000, чтобы исключить любое число с менее чем 4 цифрами. 

Тем не менее, это может по-прежнему возвращать числа с повторяющимися цифрами, например 1111. Следующий код расширил функцию генерации случайных чисел, сделав ее недействительной и универсальной:

 def gen_rand_num(digits=4, no_leading_zeros=True, no_repeating_digits=True): 
, если цифры>=10:
no_repeating_digits = False
start = 10**(digits-1) if no_leading_zeros else 0
end = 10**digits-1
while True:
rndnum = random.randint(start, end)
rndnum_str = f'{{0:0{ digits}d}}'.format(rndnum)
if no_repeating_digits:
if len(set(rndnum_str))==digits:
return rndnum_str
else:
return rndnum_str

На самом деле есть лучший способ вместо проверки на достоверность и сгенерировать другой номер, если он недействителен, заранее сгенерировав список допустимых номеров с перестановкой.

Проверить пользовательский ввод для оценки

Чтобы получить пользовательский ввод, вы можете просто использовать метод ввода в Python:

 для i в диапазоне (10): 
предположение = ввод (f'Round {i+1}, введите свое предположение: ')

Затем все, что вам нужно сделать, это сравнить введенные пользователем данные с сгенерированным случайным числом, цифра за цифрой:

 def cal_score_against(угадай, против): 
rndnum_str = f'{{0:04d} }'. format(int(против))
rndnum_lst = список(rndnum_str)
предположение_str = f'{{0:04d}}'.format(int(угадай))
guess_lst = list(guess_str)
a = sum([n==rndnum_lst[i] для i, n в enumerate(guess_lst)])
b = sum([n в rndnum_lst и n!=rndnum_lst[i]
для i, n in enumerate(guess_lst)])
return f'{a}A{b}B'

Обработка списков в приведенном выше коде более элегантна, чем цикл for , и использует преимущества суммы ([ True, False])=1 функция в Python для подсчета количества попаданий.

Зацикливание

Это почти все для простой реализации Быки и Коровы , давайте завернем это в цикл и попробуем:

 = 10**(цифры-1) if no_leading_zeros else 0 
end = 10**digits-1
while True:
rndnum = random.randint(start, end)
rndnum_str = f'{{0:0{digits} d}}'.format(rndnum)
, если no_repeating_digits:
, если len(set(rndnum_str))==digits:
, вернуть rndnum_str
иначе:
вернуть rndnum_strdef cal_score_against(угадай, против):
rndnum_str = f'{{0:04d}}'. format(int(против)) 04d}}'.format(int(guess))
Guess_lst = list(guess_str)
a = sum([n==rndnum_lst[i] for i, n in enumerate(guess_lst)])
b = sum([n в rndnum_lst и n!=rndnum_lst[i]
для i, n в enumerate(guess_lst)])
вернуть f'{a}A{b}B'rndnum = gen_rand_num()
для i в диапазоне (10):
предположение = ввод (f'Округлите {i+1}, введите свое предположение: ')
score = cal_score_against(guess, rndnum)
if score=='4A0B':
print(f'{score}, ты выиграл!')
break
else:
print(score)
else:
print(f' Вы проиграли, правильный ответ: {numble.get_answer()}') вывод:
Раунд 1, введите ваше предположение: 1023
2A0B
Раунд 2, введите ваше предположение: 1045
0A1B
Раунд 3, введите ваше предположение: 4623
2A0B
Раунд 4, введите ваше предположение: 5723
2A1B
Раунд 5, введите ваше предположение: 8523
4A0B, вы выиграли!

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

Такой же ленивый, как и я, конечно, я не остановлюсь на этом. Одно из решений автоматического угадывания, которое я могу быстро найти, — это грубая сила, перебирающая все возможные ответы и сравнивающая их с известными оценками.

 def auto_guess(rndnum): 
print('Игра началась, автоугадывание...')
start = 10**(self.digits-1), if self.no_leading_zeros else 0 = Истинно
для элемента, значение в Guess.items():
if cal_score_against(предмет, предположение)!=значение:
действительно = Ложь
break
else:
score = cal_score_against(guess, rndnum)
предположения[догадка] = наберите
, если недействительно:
, продолжите
, если счет=='4A0B':
print(f'Round {len(догадки)}, {угадай}: {счет}, вы выиграли!')
break
else:
print(f'Round {len(guesses)}, {guess}: {score}') output:
Игра началась, автоугадывание...
Раунд 1, 1023: 0A2B
Раунд 2 , 2145: 0A2B
Раунд 3, 3256: 0A2B
Раунд 4, 4361: 1A1B
Раунд 5, 4530: 1A1B
Раунд 6, 4602: 0A0B
Раунд 7, 5731: 3A0B
раунд 8, 5831: 3A0B
1: 3A0B
раунд 8, 5831: 3A0B
31: 3A0B
. 5931: 4A0B, ты победил!

Я проверил все 4536 возможных скрытых чисел с помощью этого подхода, и мне потребовалось 2 минуты 11 секунд, чтобы угадать их все. Есть несколько из них, которые занимают максимум 9раунды, чтобы угадать, например, 5931 выше. Согласно Википедии доказано, что все задачи можно решить за 7 шагов, а среднее минимальное количество шагов составляет 5,21. Я считаю свой алгоритм грубой силы очень успешным.

Может показаться правдоподобным реализовать эту игру с графическим интерфейсом вместо моей скромной версии с командной строкой. Но просто найдите Bulls and Cows в своем App Store, и вы найдете множество бесплатных версий. Если вы не хотите принять это как вызов, чтобы узнать что-то новое, это не стоит пота.

Bulls & Cows в App Store

Описание

Соревнуйтесь с другими пользователями в игре "Быки и коровы", которая уже давно пользуется популярностью у многих!

Вы можете бесплатно соревноваться с другими пользователями.
Включает турниры и соревнования с реальными денежными призами (если таковые имеются).

▣ Как играть в
- Угадай секретное число из 3 или 4 цифр.
- Если угаданное число находится в той же позиции, то это "Бык", а если разные, то это "Корова".
- Очки начисляются в зависимости от количества "Быков" и "Коров".
- Если вы угадаете секретное число в быстром ходе, вы получите высокий балл.

Дополнительные правила игры см. здесь.
https://en.wikipedia.org/wiki/Bulls_and_Cows

Если у вас есть какие-либо вопросы об игре, не стесняйтесь обращаться к нам по адресу:
[email protected]
Если у вас есть какие-либо вопросы о платформе, пожалуйста, свяжитесь с нами :
[email protected].

Версия 1.0.5

- Оптимизация системы

Рейтинги и обзоры

96 оценок

это очень мило.


Рисовка симпатичная и игра должна быть немножко мозговитой, но соревнование с противником интересное.

Удивительно!!!!

Каждая игра, которую ты придумываешь, великолепна... не могу дождаться большего!!!

Базовый и простой в освоении

Легко учиться!

Разработчик, MalangGames Corp., указал, что политика конфиденциальности приложения может включать обработку данных, как описано ниже. Для получения дополнительной информации см. политику конфиденциальности разработчика.

Данные, используемые для отслеживания вас

Следующие данные могут использоваться для отслеживания вас в приложениях и на веб-сайтах, принадлежащих другим компаниям:

  • Расположение

  • Идентификаторы

  • Данные об использовании

Данные, связанные с вами

Следующие данные могут быть собраны и связаны с вашей личностью:

  • Покупки

  • Финансовая информация

  • Расположение

  • Контактная информация

  • Контакты

  • Пользовательский контент

  • Идентификаторы

  • Данные об использовании

  • Диагностика

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

Информация

Продавец
Маланг Геймс Корп.

Размер
122,3 МБ

Категория

Игры

Возрастной рейтинг
17+
Играть в азартные игры
Частые/интенсивные конкурсы

Авторское право
© Корпорация MalangGames, 2020 г.

Цена
Бесплатно

  • Сайт разработчика

  • Тех. поддержка

  • Политика конфиденциальности

Еще от этого разработчика

Вам также может понравиться

Teach For Fun: головоломка LR на тему «Быки и коровы»

«Teach For Fun» — это конкурс, который мы в 2IIM объявили в преддверии Дня учителя. Преподавание и обучение — это две вещи, которые не имеют конечных пределов (говоря на языке математики, предмета, который доставляет мне огромную радость). Мы твердо убеждены в том, что новые идеи, концепции и методологии обучения, подходы и головоломки могут исходить от кого угодно, независимо от тега «учитель». Когда я просмотрел все работы, представленные нашими всегда полными энтузиазма студентами, это было очень увлекательно. Это всегда хороший, освежающий знак, когда учащиеся присоединяются к математическим, логическим головоломкам и вдумчивым взглядам на образование в целом.

Еще раз спасибо за участие в конкурсе. Поздравляю всех присутствующих с Днем учителя. Все мы учителя, так или иначе.

Вот невероятная головоломка от Вишну Саи, которая включает в себя немного логических рассуждений, несколько кусочков расстройств и еще немного перестановок и комбинаций. Удачного решения!

Раджеш

Головоломка – Быки и Коровы

Рамеш и Суреш, наслаждаясь своим пятизвездочным шоколадом, решили забыть об окружающем мире, сыграв в версию игры «Быки и Коровы».
Правила игры следующие:

Рамеш формирует секретный 4-значный код (без повторений и исключая 0), и Суреш должен взломать код, используя подсказки, данные Рамешем.

На каждое предположение Суреша Рамеш называет количество Быков — количество цифр в его коде и в правильном положении — и количество Коров — количество цифр в его коде и не в правильном положении.

Пример
  1. Если число Рамеша 8352, а Суреш угадывает 3459, Рамеш ответит: 1 Бык (5 в коде и в правильном месте) и 1 Корова (3 в коде и не в правильном месте).
  2. Код Рамеша = 6724; Предположение Суреша = 7429

Ответ Рамеша в этом случае будет 1 Бык 2 Коровы

Вопросы: Коды, Предположения, Быки и Коровы

(Обратите внимание, что каждый вопрос является независимым, и информацию не следует использовать для следующего вопросы, если в вопросе не указано иное) 

  1. Какое общее количество возможных кодов может быть сформировано Рамешем?
  1. Если Рамеш отвечает Сурешу 4 быками и 0 коровами, каково общее количество возможных упорядоченных пар кода Рамеша и догадки Суреша?
  1. Каково общее количество возможных упорядоченных пар кода Рамеша и предположения Суреша, если Рамеш отвечает Сурешу двумя быками и двумя коровами?
  1. Если предположить, что Рамеш ответит Сурешу тремя быками и одной коровой, каково общее количество возможных упорядоченных пар кода Рамеша и догадки Суреша?
  1. Каково общее количество возможных упорядоченных пар кода Рамеша и предположения Суреша, если Рамеш отвечает Сурешу 0 быков и 4 коров?
  1. Если Рамеш отвечает Сурешу 0 Быков и 0 Коров, каково общее количество возможных упорядоченных пар Кода Рамеша и догадок Суреша 
  1. Каково общее количество допустимых пар ответов Быков и Коров?

Ответы

Пожалуйста, не читайте дальше до тех пор, пока не попытаетесь решить вопросы самостоятельно.

  1. 9P4 или 3024
  1. 9P4 или 3024
  1. 18144
  1. 0
  1. 0
  1. 0
  1. 0
  1. 0
  1. 0
  1. . = 362880
  1. 14

Объяснение

Вопрос №1
Мы должны найти общее количество возможных кодов, которые может составить Рамеш.

Этот вопрос аналогичен известному вопросу P&C: «Сколько 4-значных чисел можно составить без повторения и без использования 0?»

  • Общее количество способов выбора первой цифры = 9
  • Общее количество способов выбора второй цифры = 8 (мы не можем использовать использованную цифру для первой цифры)
  • Аналогично, количество способов выбора третьей и четвертой цифр 7 и 6 соответственно.

Таким образом, общее количество способов получается как 9*8*7*6 = 9P4 = 3024

Вопрос № 2
Общее количество упорядоченных пар кода Рамеша и предположения Суреша с 4 быками и 0 коровами

Предположим, что код Рамеша — 1234, и чтобы Суреш угадал, чтобы получить 4 Быка, Суреш должен также угадать 1234.  

Следовательно, чтобы получить 4 Быка, Суреш должен угадать точно такое же число, составленное Рамешем.

Следовательно, ответом на этот вопрос также будет общее количество возможных кодов = 9P4 = 3024  

и 2 коровы

Здесь мы должны использовать понятие Психозов.

(Обозначьте функцию D(x) для возврата числа нарушений x.  То же самое обозначение будет использоваться в следующих решениях) 

Обратите внимание, что предположение Суреша должно содержать только эти 4 цифры и никакую другую цифру. Следовательно, нам не нужно выбирать цифры из остальных 5 цифр, поскольку ответ Рамеша — 2 быка и 2 коровы.

Таким образом, 4 общие цифры из 9 цифр можно выбрать способами 9C4.

Первое число в паре можно составить из 4! Пути

Следовательно, первое число можно составить из 9C4 * 4! Или 9P4

Догадка Суреша, или второе число в паре

2 из этих 4 цифр на правильном месте, а остальные 2 не на своем месте.

Количество способов выбрать 2 из 4 цифр, подлежащих исправлению = 4C2 

Количество способов поставить другие 2 цифры не на свои места = Количество нарушений 2 = D (2) =1 

Решение

( Количество возможностей выбора первого числа в паре) *(Количество возможностей выбора второго числа в паре с условием) 

Количество способов выбора первого числа = 9P4

Количество способов образования второго числа в паре с условием = 4C2 * D(2) = 6*1  

Окончательное решение = (9P4) * (4C2 *D(2) )  = 3024 *6 =  18144  

Вопрос № 4
Общее количество упорядоченных пар кода Рамеша и предположения Суреша с 3 быками и 1 коровой

Попробуем решить этот вопрос за 2 способы.

Простой анализ данного состояния с участием быков и коров

Из условия мы понимаем, что все 4 цифры из предположения Суреша существуют в коде Рамеша. И 3 из них находятся в правильном месте, а 1 цифра не в том месте.

Возможна ли такая ситуация?

Когда 3 цифры зафиксированы на своих местах, 4 цифра, если она не на своем месте, не может также сместить другую цифру с ее правильного места.
Суреш должен сказать создателю кода Рамешу, чтобы тот проверил его ответ и не слишком отвлекался на вкус своего шоколада (немного забавного из старой пятизвездочной рекламы шоколада😊) 

Окончательное решение: ноль

Математическое решение

Повторное использование того же анализа из предыдущего вопроса,   .

Следовательно, окончательное решение = 0

Вопрос № 5
Общее количество упорядоченных пар кода Рамеша и предположения Суреша с 0 быками и 4 коровами

Опять же, повторное использование большинства предыдущих вопросов из анализа:

Код Рамеша или первое число в паре может быть составлено способами 9P4

Предположение Суреша

Предположение Суреша должно содержать все 4 цифры и ни одна цифра не должна стоять на нужном месте.

Это то же самое, что и нахождение Нарушений 4 = D(4) = 9 

Решение = ( Количество возможностей выбора первого числа в паре) *( Количество возможностей второе число в паре с условием)

= (9p4) * (D (4)) = 3024 * 9 = 27216

Вопрос № 6
Общее количество заказанных пар Рамеша и догады

Количество способов составления кода Рамеша или Первое число в паре = 9C4*4! Или 9P4 = 3024

Количество способов составления предположения Суреша

Предположение Суреша не должно содержать цифр из кода Рамеша и должно быть составлено из 5 других цифр, не входящих в код Рамеша.

Следовательно, общее количество способов, которыми Суреш мог составить свой код = 5C4 * 4! = 5P4  

Решение= Всего возможностей кода Рамеша X Всего возможностей предположения Суреша  

= 9P4 * 5P4 = 9! Вопрос № 7

Количество упорядоченных пар (b,c), таких что b и c являются неотрицательными целыми числами и удовлетворяющих условию  b+c < =4? (b для количества быков и c для количества коров)

Решим b+c

< =4

Введем фиктивную переменную d так, что b+c+d = 4 (b, c,d >=0)

Количество решений = (n+r-1)C(r-1) = (4+3-1) C(3-1) = 6C2 =15  

Получаем ли мы правильное количество комбинаций Быков и Коров , хотя?

№. Осторожно здесь!!!!

Помните случай – Быки = 3 Коровы = 1? Мы выяснили, что это невозможно.

Мы не должны считать это дело.

Итак, давайте просто посчитаем все 15 возможных случаев и удалим недопустимые пары.

Корпус B+C = 4

(4,0)

(0,4)

(1,3)

(3,1) - Недостоит

( 2,2)

Случай B+C =3  

(1,2) 

(2,1) 

(3,0)

(0,3)

Случай B+C = 2

(2,0)

(0,2)

(1,1)

Случай B+C=1  

(1,0)

(0,1)

Вариант B+C = 0  

(0,02) Всего 9 пар + 9 04 + 9 4+3+2+1 = 14

Таким образом, мы действительно могли вычесть неверное (3,1) из 15 случаев ранее, но поскольку число довольно мало, мы могли бы сделать этот подсчет, чтобы быть полностью уверенным.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *