Бесплатная доставка
От 2900 ₽ — внутри МКАД.
От 4000 ₽ — за МКАД.
Игру под названием Mastermind перевели в России как «Властелин разума», хотя более точным вариантом было бы что-либо вроде «гения». В конце концов, ведь фильм «A Beautiful Mind» тоже перевели как «Игры разума». Именно об играх разума и пойдёт речь.
Ваша задача — взломать код
Если вы смотрели фильмы про хакеров и специалистов по информационной безопасности, то у вас могло сложиться впечатление, что хакер просто обязан уметь быстро бегать.
На самом же деле, редко кто из них вступал в прямое противостояние с полицией — до тех пор, пока их планы не были вычислены, никаких погонь просто не могло бы быть.
В абстрактной игре «Властелин разума» вам предстоит попробовать примерить на себя роль как взламывателя кодов, так и специалиста по защите данных.
Главное — не дать ему угадать!
Код состоит из четырёх цветных элементов, которые вы укладываете в специальный блок и фиксируете в нём. После фиксации начинается игровой раунд: ваш оппонент (кодолом или хакер) каждый ход выкладывает на игровое поле четыре цветных элемента.
Если среди них есть такие, какие используются в вашем коде, то вы вытаскиваете белую маркерную полоску сбоку от них по делению на каждый имеющийся в коде, но не совпадающий по месту расположения элемент — или же красную полоску за каждый имеющийся и совпадающий. При отгадывании кода раунд заканчивается победой кодолома.
Если же ваш код оказался настолько криптостойким, что «хакер» потратил 12 попыток и не добился результата — значит, раунд выигрываете вы. После этого вы меняетесь ролями с оппонентом для игры в новом раунде.
Польза игры
Как вы уже, наверное, догадались, игра имеет достаточно интересную математическую модель, сводящуюся к системе линейных уравнений. Если действовать логически, то 12 попыток будет ровно достаточно для вскрытия любого кода (без усложняющих правил).
Если же не вести расчёты (как это и делает большинство игроков), то у вас появляется прекрасный тренажер для интеллекта, памяти и системного мышления.
Проще говоря, «Властелин разума» действительно делает вас и ваших детей умнее — и при этом оставаясь весьма увлекательным и интересным.
Если вы покупаете эту игру для своего ребёнка, то дарите ему неоценимую возможность познать множество аспектов математики «вживую», то есть заложить отличный базис для обучения.
Усложнения
Играть можно не только вдвоём, но и группами до 5 человек: в этом случае игроки получают очки за каждое удачное действие. Можно усложнять игру, сокращая количество попыток, а также разрешая использовать одноцветные элементы внутри кода.
Издание
«Властелин разума» издаётся Hasbro, игры которой известны своим качеством. В наборе вы найдёте большое и удобное игровое поле, которое специально разработано для того, чтобы обеспечить максимальную эргономику и удобство игры. Вместе с играми поставляются очень удобные карточки для подсчёта очков в групповой игре.
Выиграть наибольшее число раундов
- кодолом выигрывает раунд, если он взламывает код с 12-ти или менее попыток;
- кодотворец выигрывает раунд, если у кодолома не получается взломать код.
Ход игры
- Решите, кто будет первым кодотворцем. Кодотворец сидит у вращающегося конца Мастермайнда, а кодолом прямо напротив.
- Договоритесь о четном количестве игровых раундов.
- В начале каждого раунда кокодотворец берет кодоутаночный блок и набирает комбинацию цветов.
Будьте внимательны, чтобы кодолом не увидел вашего секретного кода.
- Теперь кодолом может начинать угадывать код.
- Для попытки угадать
- Вставьте 4 колышка в дырки, начиная с ряда наиболее удаленного от кодотворца и продвигаясь ближе к кодотворцу с каждой новой попыткой.
- Если не угадывается
Кодотворец оценивает попытку (см. раздел об оценке на стр^ 56).
Кодолом продолжает отгадывать до техпор, пока код не будет взломан или он не использует все 12 попыток. Как колышки, так и оценки остаются на месте на протяжении всего раунда.
Если угадывается
Кодотворец открывает код и раунд заканчивается. Заметьте: Когда открываете код, убедитесь, что не перевернули кодоустановочный блок и что последовательность кода не предстает в обратном порядке.
В конце раунда зафиксируйте кто выиграл, затем меняйтесь ролями.
Игра заканчивается, когда оговоренное четное число раундов сыграно. Игрок, выигравшийбольшее число раундов, победитель!
Количество игроков | От 2 до 5 игроков |
Возраст игроков | От 8 лет |
Время игры | От 15 До 30 минут |
Вес | 1.41 кг |
Производитель | Hasbro |
Mastermind
Материал из GS
«Mastermind» — английская викторина, идущая уже более тридцати пяти лет, в которой участнику для получения почётного титула Mastermind предстоит пройти отборочные игры и победить в финале по одним правилам — за определённое время дать как можно большее количество правильных ответов на вопросы.
Содержание
- 1 Правила игры
- 2 Интересные факты
- 3 Галерея изображений
- 4 Ссылки
Правила игры
Правила интеллектуального соревнования очень просты: в начале каждому из четверых игроков предстоит за две минуты дать правильные ответы на максимальное количество вопросов по их специальным темам, определённым заранее. Каждый правильный ответ равняется одному баллу.
После этого участники в порядке, обратном набранным ими баллам, должны в течение двух с половиной минут (с сезона 2010—2011; ранее процесс длился две минуты) набрать как можно больше баллов, отвечая вопросы из категории общих знаний. Отвечающий вправе сказать «пас» и тем самым пропустить вопрос.
Участник, набравший наибольшее суммарное количество баллов за оба раунда, объявляется победителем игры.
В случае ничьи, то есть равного количества баллов у нескольких участников, игрок, давший меньше «пасов», объявляется победителем. Если количество и верных ответов, и «пасов» равно, каждому из лидирующих соперников задаётся по пять вопросов. Соперник (или соперники) при этом должен на время покинуть студию. Этот процесс повторяется до тех пор, пока не будет определён победитель.
Победитель турнира награждается почётным званием «Mastermind» и гранёной чашей.
Интересные факты
- 19 марта 2005 года был проведён специальный выпуск «Doctor Who Mastermind», в котором принимали участие звёзды этого сериала. Особенностью этого выпуска были специальные темы участников — все они в первом раунде отвечали на вопросы о сериале «Doctor Who», а приз победителю вручал человек, игравший роль Доктора на тот момент — Кристофер Экклстон.
- Рекорд количества правильных ответов за оба раунда за всё время существования викторины установил Kevin Ashman в 1995 году. Его темой была «Жизнь Мартина Лютера Кинга». Сейчас он является одним из главных героев игры «Eggheads».
- Самый низкий результат за всю игру показал Kajen Thuraaisingham, набрав лишь четыре балла в выпуске от 29 января 2010 года.
Галерея изображений
-
Ведущий игры — John Humphrys -
Знакомство с игроком: его имя и фамилия, род занятий, а также специальная тема -
Главный приз турнира — гранёная чаша и звание «Mastermind»
Ссылки
- Скачать выпуски телеигры «Mastermind»
- Статья об игре на сайте канала BBC
Как играть в Mastermind: 15 шагов (с картинками) — Хобби и ремесла 2021
Mastermind — сложная игра-головоломка, в которой один игрок пытается угадать код, который придумал его противник. Первоначально это была настольная игра, хотя и уходящая корнями в более ранние игры с ручкой и бумагой, Mastermind теперь широко доступна в Интернете и для мобильных устройств.
Вы также можете играть в Mastermind с помощью бумаги и ручки, если у вас нет версии для настольной или видеоигры.
Шаги
Часть 1 из 3: игра в Mastermind
Шаг 1. Попросите создателя кода выбрать код
Настольные игры Mastermind имеют ряд отверстий на одном конце доски, скрытых от глаз под навесным щитом. Человек, который играет в составителя кода, тайно берет несколько цветных колышков и помещает их в этот ряд отверстий в любом порядке. Это код, который взломщик кода попытается угадать.
- Если вы играете в версию видеоигры, обычно это делает компьютер, а не проигрыватель.
- Создатель кода должен вставить колышек в каждое отверстие. У него есть возможность использовать несколько колышков одного цвета. Например, он мог положить Зеленый желтый желтый синий.
Шаг 2. Попросите взломщика кода сделать свое первое предположение
Другой игрок или единственный игрок в версиях видеоигр пытается угадать, что это за скрытый код. Сидя на противоположном конце доски, она берет большие цветные колышки и помещает их в ближайший ряд больших отверстий.
- Например, она могла положить Синий Оранжевый Зеленый Фиолетовый. (В вашей игре Mastermind может быть больше отверстий или колышков разного цвета.)
Шаг 3. Попросите создателя кода оставить отзыв
Рядом с каждым «угадываемым рядом» есть небольшой квадрат с отверстиями, достаточными для четырех крошечных колышков.
Эти колышки бывают только двух цветов: белого и красного (или белого и черного в некоторых версиях). Создатель кода использует это, чтобы понять, насколько верным было предположение.
Разработчик кода должен быть честным и всегда ставить колышки, следуя этим инструкциям:
- Каждый белый колышек означает, что один из предполагаемых колышков правильный, но находится в неправильном отверстии.
- Каждый красный (или черный) колышек означает, что один из предполагаемых колышков правильный и находится в правильном отверстии.
- Порядок белых и черных колышков не имеет значения.
Шаг 4. Изучите примеры
В нашем примере выше создатель кода тайно выбрал Желтый желтый зеленый синий. Взломщик кода угадал Синий Оранжевый Зеленый Фиолетовый. Создатель кода смотрит на это предположение, чтобы выяснить, какие подсказки разместить:
- Колышек №1 Синий. В коде есть синий цвет, но его нет в позиции №1. Это дает белую подсказку.
- Колышек №2 апельсин. В коде нет апельсина, поэтому подсказка не ставится.
- Колышек №3 Зеленый. В коде есть зеленый цвет, и он находится в позиции №3. Это дает красную (или черную) подсказку.
- Колышек №4 Фиолетовый. В коде нет пурпурного цвета, поэтому подсказка не ставится.
Шаг 5. Повторите со следующим рядом
У взломщика кода теперь немного информации. В нашем примере у нее есть одна белая подсказка, одна красная подсказка и две пустые лунки.
Это означает, что из четырех колышков, которые она поставила, один из них принадлежит, но его нужно переместить в другое отверстие, один из них уже находится в нужном месте, а два из них не входят в код.
Она немного думает и делает второе предположение в следующем наивысшем ряду:
- Взломщик кода угадывает Синий Желтый Оранжевый Розовый этот раз.
- Создатель кода проверяет это предположение: Синий принадлежит, но находится не в том месте; Желтый принадлежит и находится в нужном месте; апельсин не принадлежит; Розовый не принадлежит.
- Разработчик кода кладет одну белую подсказку и одну красную подсказку.
Шаг 6. Продолжайте до тех пор, пока код не будет отгадан или угадывания не останется
Взломщик кода продолжает делать предположения, используя информацию из всех полученных ею ранее подсказок. Если ей удастся угадать полный код в точном порядке, она побеждает в игре. Если она не может угадать и заполняет каждую строку колышками, вместо этого выигрывает разработчик кода.
Шаг 7. Поменяйтесь местами и играйте снова
Если вы играете в игру для двух человек, переверните доску, чтобы другой человек придумал код, а другой догадался. Таким образом, каждый сможет сыграть в главную часть игры: угадать код.
Часть 2 из 3: Использование методического подхода
Шаг 1. Начните с угадывания четырех одинаковых фигурок
Новый Mastermind игрок быстро понимает, что даже предположение, которое приносит несколько подсказок, не всегда приводит к быстрой победе, поскольку существует множество возможных способов интерпретации подсказок. Начиная с каре (например, Синий Синий Синий Синий) дает вам надежную информацию, с которой можно работать сразу же.
Это не единственная стратегия, которую можно использовать в Mastermind, но ее легко освоить. Это будет не очень хорошо, если в вашей версии есть более шести цветов на выбор
Шаг 2. Используйте шаблоны 2–2 для определения цветов
Ваши следующие несколько ходов будут двумя парами цветов, всегда начиная с двух примеров цвета, который вы угадали ранее. Например, следующие Синий Синий Синий Синий, делайте предположения, которые начинаются с Синий синий и закончите одним другим цветом, пока не узнаете все доступные цвета. Вот пример:
- Синий Синий Синий Синий — никаких подсказок. Ничего страшного, мы все равно продолжим использовать Blue.
- Синий Синий Зеленый Зеленый — один белый колышек. Будем иметь в виду, что в коде один зеленый цвет, и он должен быть в левой половине.
- Синий Синий Розовый Розовый — один черный колышек. Теперь мы знаем, что в коде справа один розовый.
- Синий Синий Желтый Желтый — один белый колышек и один черный колышек. В коде должно быть как минимум два желтых цвета: один слева и один справа.
Шаг 3. Используйте логику, чтобы изменить порядок известных колышков
Как только вы заработали в общей сложности четыре подсказки, вы точно знаете, какие цвета задействованы, но не в каком порядке. В нашем примере код должен содержать зеленый, розовый, желтый и желтый цвета. Система разделения доски на две пары также дала нам некоторую информацию о том, в каком порядке их размещать, так что мы сможем получить это с помощью одного-трех предположений:
- Мы знаем это Зеленый желтый розовый желтый имеет левую и правую половины, которые содержат правильные колышки, но оказывается, что в наших результатах мы получаем два белых и два черных колышка. Это означает, что одна из половинок (либо # 1 и # 2 должны поменяться местами, либо # 3 и # 4 нужно поменять местами).
- Мы пытаемся Желтый зеленый розовый желтый и получите четыре черных колышка — код решен.
Часть 3 из 3: Пример мощного методического подхода (2)
Шаг 1. Удалите два цвета одновременно (с 4 неизвестными булавками)
Например красный и синий:
- Красный Красный Синий Синий
- Результат 1: no pegs: красного и синего нет в коде
- Результат 2: один белый или черный колышек (допустим, белый колышек). Либо красный, либо синий присутствует в коде один раз. Синий Синий Синий Синий даст вам колышек, если он синий, или без колышков, если он красный (допустим, без колышков). В этом примере мы теперь знаем, что есть красная булавка и что она находится на 3-м или 4-м месте (так как у нас есть белая булавка на Красный Красный Синий Синий). Его поиск будет рассмотрен в следующей стратегии (за один шаг: Красный зеленый зеленый зеленый ).
- Результат 3: больше колышков (допустим, 2 белых колышка). Как и Результат 2, мы можем попробовать Синий Синий Синий Синий чтобы узнать, сколько контактов было синих (давайте снова допустим ноль). Теперь осталось только найти булавки. В этом примере мы уже знаем, что 3-й и 4-й — красные булавки, так как есть 2 красных булавки, и они не находятся на первом или втором месте (поскольку у нас есть 2 белых колышка).
Шаг 2. Найдите расположение красного цвета, если вы знаете, что есть хотя бы одна красная булавка, но не знаете, в каком из отверстий она должна быть
Вы можете найти булавку, попробовав каждое из мест. В качестве альтернативного цвета мы используем цвета, которые еще не тестировали.
Таким образом, мы находим не только красную булавку, но и дополнительную информацию о других цветах.
Ниже приведен пример, если вы знаете, что есть красная булавка, но не знаете, в каком из четырех отверстий она находится. Это также даст вам количество зеленого, желтого и розового.
- Красный зеленый зеленый зеленый
- Желтый красный желтый желтый
- Розовый Розовый Красный Розовый
- Примечание: Если вы знаете точное количество красных, вам не нужно пробовать последнее место: если есть одна красная булавка, и ее нет в первом, втором или третьем месте, она должна быть в четвертом).
- Результат 1: Если нет белых колышков, у вас будет хотя бы один черный колышек. Этот колышек указывает на то, что красный штифт находится в правильном месте.
- Результат 2: Если есть один белый штифт, вы знаете, что красный штифт находится в неправильном месте, и что альтернативный цвет отсутствует в коде
- Результат 3: Если есть второй белый штифт, вы знаете, что второй цвет должен быть в том месте, где находится красный штифт.
- Результат 4: Если есть один или несколько черных колышков, это означает, что присутствует второй цвет. Он также дает вам количество контактов этого цвета, и вы знаете, что он не находится в том месте, где находится красный (поскольку это дает белый колышек), или, очевидно, в том месте, где красный заканчивается.
Шаг 3. Удалите два цвета одновременно (с 3 неизвестными булавками)
Поместите один цвет в место, которое вы знаете, а другой цвет в места, которые вы не знаете. Например, зеленый и желтый, и мы знаем, что первый контакт красный:
- Зеленый желтый желтый желтый
- Результат 1: без колышков; зеленый и желтый не входят в код
- Результат 2а: белый колышек означает, что в коде есть зеленый, но мы не знаем количество (это может быть один, но также два или даже три)
- Результат 2b: количество черных колышков указывает количество желтого в коде (как указано в Стратегии 2: знание точного количества может сэкономить вам шаг в поиске цвета)
Шаг 4. Удалите два цвета одновременно (только с 1 или 2 неизвестными булавками)
Эта стратегия очень похожа на предыдущую, но теперь количество белых колышков также дает нам количество этого цвета, например зеленого и желтого, и мы знаем, что первые два контакта красные:
- Зеленый зеленый желтый желтый
- Результат 1: no pegs: зеленого и желтого нет в коде
- Результат 2а: белый колышек указывает на то, что один зеленый находится в коде, в то время как 2 колышка указывают на то, что в коде есть зеленые (поскольку есть только 2 неизвестных, невозможно, чтобы было три зеленых)
- Результат 2b: как и в предыдущей стратегии, количество черных колышков указывает количество желтого в коде. (как указано в Стратегии 2: знание точной суммы может сэкономить вам шаг в поиске цвета)
Шаг 5. Учитесь на примере
В этом примере, как всегда, мы начинаем со стратегии 1…
- (стратегия 1) Синий Синий Красный Красный дает 2 белых колышка. Итак, мы знаем, что присутствует красный и / или синий цвет. Мы хотим знать, какой синий, а какой красный, поэтому мы проверяем:
- (стратегия 1 бис) Синий Синий Синий Синий дает один черный колышек. Это означает, что мы знаем в предыдущем ответе, что был один синий (и в неправильном месте — значит, будет 3-й или 4-й), и, следовательно, также один красный (а также в неправильном месте, поэтому будет 1-й или 2-й)
- (стратегия 2 (найти синий)) Зеленый зеленый синий зеленый дает белый и черный колышки. Мы проверили одно из местоположений синего цвета, и, поскольку есть белый колышек, мы знаем, что это не третий колышек. Поскольку мы знаем, что это был либо 3-й, либо 4-й колышек, мы знаем, что 4-й колышек синий. Черный колышек также указывает на наличие зеленого колышка, но это не третья точка (поскольку это черный колышек, а не белый).
- (стратегия 2 (найти красный)) Красный Желтый Желтый Желтый дает единственный белый колышек, поэтому, хотя мы знаем, что красный находится в первой или второй точке, теперь мы знаем, что он не в первой точке. Так что это во второй локации. Мы также знаем, что нет желтого цвета
- Следующим цветом, по которому у нас была информация, был зеленый, но, поскольку мы знаем, что это не третья точка, а вторая и четвертая точки заполнены синим и красным, мы знаем, что это первая точка.
- (стратегия 4) Апельсин Апельсин Розовый Апельсин Дает белый колышек. Итак, мы знаем, что единственное неизвестное пятно — третье пятно — имеет оранжевый цвет.
- (отвечать) Зеленый Красный Оранжевый Синий
Видео — с помощью этой службы некоторая информация может быть передана YouTube
подсказки
- Если взломщик кода угадывает несколько одинаковых цветов, создатель кода по-прежнему дает только одну подсказку для каждой привязки. Например, если взломщик кода угадает Желтый желтый синий синий и правильный код Желтый синий зеленый зеленый, разработчик кода ставит один красный колышек (для первого желтого) и один белый (для первого синего). Второй желтый и второй синий не приносят никаких подсказок, потому что в коде только один желтый и один синий.
- Если вы начнете с предположения Синий Синий Зеленый Зеленый (или любой другой схеме 2-2), и играя идеально, вы всегда можете выиграть за пять или меньше ходов. Однако для идеальной игры необходимо учитывать все 1 296 возможных кодов, поэтому эта стратегия используется только компьютерами.
- Чтобы усложнить игру, давайте взломщику меньше предположений.
Популярные по теме
Игра Mastermind с использованием Python | Портал информатики для гиков
Принимая во внимание то, что нынешнее поколение знакомо с играми и их востребованными технологиями, многие стремятся развивать идею дальнейшего развития и развития. В конце концов, все начинается с самого начала. Mastermind — старая взломанная игра, в которую играют два игрока. Игра восходит к 19 веку и в нее можно играть с помощью бумаги и карандаша.
Необходимое условие: Случайные числа в Python
Правила игры
Два игрока играют в игру друг против друга; давайте предположим, что игрок 1 и игрок 2.
- Игрок 1 проигрывает первым, установив многозначный номер.
- Игрок 2 теперь пытается сделать первую попытку угадать число.
- Если игрок 2 преуспевает в своей первой попытке (несмотря на шансы, которые весьма маловероятны), он выигрывает игру и становится коронованным вдохновителем! Если нет, то игрок 1 намекает, показывая, какие цифры или числа игрок 2 получил правильно.
- Игра продолжается до тех пор, пока Игрок 2 не сможет угадать число полностью.
- Теперь игрок 2 получает возможность установить число, а игрок 1 играет роль в угадывании числа.
- Если Игрок 1 может угадать число в течение меньшего количества попыток, чем Игрок 2, то Игрок 1 выигрывает игру и короновывается как Mastermind.
- Если нет, то игрок 2 выигрывает игру.
- Настоящая игра, однако, доказала свою эстетику, поскольку цифры представлены кнопками с цветовой кодировкой.
Например: Входные данные :
Player 1, set the number: 5672
Player 2, guess the number: 1472
Выход:
Not quite the number. You did get 2 digits correct.
X X 7 2
Enter your next choice of numbers:
Мы не будем использовать ни одну из библиотек Pygame , чтобы помочь нам с дополнительной графикой, и поэтому будем иметь дело только с рамками и концепцией. Кроме того, мы будем играть против компьютера, то есть компьютер будет генерировать число, которое будет угадано.
https://www.youtube.com/watch?v=StsjjPjD1nw\u0026pp=ugMICgJydRABGAE%3D
Ниже приведена реализация вышеуказанной идеи.
- num = random.randrange(1000, 10000)
- n = int(input(«Guess the 4 digit number:»))
- if (n == num):
print(«Great! You guessed the number in just 1 try! You're a Mastermind!»)
- else:
- ctr = 0
- while (n != num):
- ctr += 1
- count = 0
- n = str(n)
- num = str(num)
- correct = ['X']*4
- for i in range(0, 4):
- if (n[i] == num[i]):
- count += 1
- correct[i] = n[i]
- else:
- continue
- if (count < 4) and (count != 0):
print(«Not quite the number. But you did get «, count, » digit(s) correct!»)
- print(«Also these numbers in your input were correct.»)
- for k in correct:
- print(k, end=' ')
- print('
') - print('
') - n = int(input(«Enter your next choice of numbers: «))
- elif (count == 0):
- print(«None of the numbers in your input match.»)
- n = int(input(«Enter your next choice of numbers: «))
- if n == num:
- print(«You've become a Mastermind!»)
- print(«It took you only», ctr, «tries.»)
- Давайте предположим, что число, установленное компьютером, составляет 1564
- Выход:
Guess the 4 digit number: 1564
Great! You guessed the number in just 1 try! You're a Mastermind!
Если номер не угадан за один шанс.
Выход:
Guess the 4 digit number: 2164
Not quite the number. But you did get 2 digit(s) correct!
Also these numbers in your input were correct.
X X 6 4
Enter your next choice of numbers: 3564
Not quite the number. But you did get 2 digit(s) correct!
Also these numbers in your input were correct.
X 5 6 4
Enter your next choice of numbers: 1564
You've become a Mastermind.
It took you only 3 tries.
Вы можете сделать игру сложнее, увеличив число цифр на входе или не раскрывая, какие цифры на входе были правильно размещены. Это было объяснено в коде ниже.
print(«Great! You guessed the number in just 1 try! You're a Mastermind!»)
print(«Not quite the number. But you did get «,count,» digit(s) correct!»)
|
Предположим, что число, установленное компьютером, равно 54876.
Выход:
Guess the 5 digit number: 38476
Not quite the number. But you did get 2 digit(s) correct!
Enter your next choice of numbers: 41876
Not quite the number. But you did get 4 digit(s) correct!
Enter the next choice of numbers: 54876
Great you've become a Mastermind!
It took you only 3 tries!
Вся сфера изменения этого кода огромна. Идея в том, чтобы понять, что это за концепция. Есть много игр, таких как эта, которая использует похожий базовый код.
Использование этого кода, его дальнейшее развитие при включении библиотек из Pygame сделало бы его больше похожим на реальную сделку, не говоря уже о гораздо более сложном!
Рекомендуемые посты:
Игра Mastermind с использованием Python
0.00 (0%) 0 votes
Mastermind (board game) — Wikipedia
Mastermind или Master Mind — этоигра с взломом кода для двух игроков. Современная игра с колышками был изобретен в 1970 году Мордекай Меероуиц , с израильской почтмейстер и телекоммуникаций эксперт. Она напоминает более раннюю игру с карандашом и бумагой под названием « Быки и коровы», которая датируется столетием.
Геймплей и правила
В игре используются:
- декодирования платы , с экраном на одном конце охватывающего ряд из четырех больших отверстий, а также двенадцать (или десять, или восемь, или шесть) дополнительных строк , содержащих четыре больших отверстий рядом с набором из четырех небольших отверстий;
- кодовые колышки шести разных цветов (или более; см. Варианты ниже) с круглыми головками, которые будут вставлены в большие отверстия на доске; а также
- штифты для ключей , некоторые из которых окрашены в черный цвет, некоторые из них белые, с плоской головкой и меньше размеров кодовых штифтов; они будут помещены в небольшие отверстия на доске.
Два игрока заранее решают, сколько игр они сыграют, и это должно быть четное число . Один игрок становится codemaker , другой Codebreaker . Создатель кода выбирает шаблон из четырех кодовых штифтов.
Дубликаты и пробелы разрешены в зависимости от выбора игрока, поэтому игрок может даже выбрать четыре кодовых штыря одного цвета или четыре пробела. В случае, если пробелы не выбраны для участия в игре, взломщик кода не может использовать пробелы для определения окончательного кода.
Выбранный шаблон помещается в четыре отверстия, закрытые экраном, которые видны изготовителю кода, но не взломщику кода.
Взломщик кода пытается угадать узор, как по порядку, так и по цвету, за восемь-двенадцать ходов. Каждое предположение делается путем размещения ряда кодовых меток на плате декодирования.
После размещения создатель кода обеспечивает обратную связь, помещая от нуля до четырех ключевых штифтов в небольшие отверстия в ряду с предположением.
Цветной или черный ключевой стержень помещается для каждого кодового стержня из предположения, которое является правильным как по цвету, так и по положению. Белый штифт указывает на наличие штифта с правильным цветовым кодом, установленного в неправильном положении.
Скриншот программной реализации (ColorCode), иллюстрирующий пример.
Если в предположении присутствуют повторяющиеся цвета, все они не могут быть награждены ключевой привязкой, если они не соответствуют одинаковому количеству повторяющихся цветов в скрытом коде.
Например, если скрытый код — красный-красный-синий-синий, а игрок угадывает красный-красный-красный-синий, разработчик кода присудит два цветных стержня для ключей за два правильных красных, ничего за третий красный, поскольку нет третий красный в коде и цветной ключ для синего. Нет никаких указаний на то, что код также включает в себя второй синий цвет.
Как только обратная связь предоставлена, делается еще одно предположение; предположения и обратная связь продолжают чередоваться до тех пор, пока либо дешифровщик не угадает правильно, либо все ряды плат декодирования не будут заполнены.
Традиционно игроки могут зарабатывать очки, только играя в качестве кодмейкера. Создатель кодов получает одно очко за каждую догадку, сделанную взломщиком кода.
Изготовитель кодов получает дополнительный балл, если взломщик кодов не может угадать точный шаблон в течение заданного количества оборотов. (Альтернативой является подсчет очков, основанный на количестве установленных ключей.
) Побеждает тот, кто наберет наибольшее количество очков после согласованного количества игр.
Могут быть указаны другие правила.
История
Игра основана на старой бумажной игре под названием Bulls and Cows . Компьютерная адаптация этого была запущена в 1960 — х годах на Кембриджском университете «s Titan компьютерной системы, где его называли„ИМ“.
Эта версия была написана Фрэнком Кингом. Была также другая версия для системы разделения времени TSS / 8, написанная Дж. С.
Фелтоном, и, наконец, версия для системы Multics в Массачусетском технологическом институте Джеррольдом Грохоу.
Современная игра с колышками был изобретен в 1970 году Мордекай Меероуиц , с израильской почтмейстер и телекоммуникаций эксперт.
Мейровиц представил идею многим крупным производителям игрушек, но после демонстрации ее на Международной выставке игрушек в Нюрнберге ее подхватила пластиковая компания Invicta Plastics , базирующаяся недалеко от Лестера , Великобритания .
Invicta приобрела все права на игру, а ее основатель Эдвард Джонс-Фенли усовершенствовал игру. Он был выпущен в 1971–2002 годах.
С 1971 года права на Mastermind принадлежат Invicta Plastics. (Invicta всегда называла игру Master Mind .) Изначально они производили ее сами, хотя с тех пор лицензировали ее производство для Hasbro по всему миру, за исключением Pressman Toys и Orda Industries, которые имеют права на производство в США и Израиле соответственно.
Начиная с 1973 года, на коробке с игрой была фотография мужчины в пиджаке, сидящего на переднем плане, с молодой азиатской женщиной, стоящей позади него. Две модели-любители (Билл Вудворд и Сесилия Фанг) воссоединились в июне 2003 года, чтобы позировать для еще одной рекламной фотографии.
Алгоритмы и стратегии
Прежде чем спрашивать о лучшей стратегии кодового взломщика, необходимо определить, что означает «лучший»: минимальное количество ходов может быть проанализировано в условиях наихудшего и среднего случая и в смысле минимаксного значения нулевого значения. Суммарная игра в теории игр .
Лучшие стратегии с четырьмя колышками и шестью цветами
С четырьмя колышками и шестью цветами получается 6 4 = 1296 различных узоров (позволяющих дублировать цвета).
Худший случай: алгоритм пяти предположений
В 1977 году Дональд Кнут продемонстрировал, что взломщик кода может решить шаблон за пять или меньше ходов, используя алгоритм, который постепенно уменьшает количество возможных шаблонов. Алгоритм работает следующим образом:
- Создайте набор S из 1296 возможных кодов (1111, 1112 … 6665, 6666)
- Начните с первоначального предположения 1122 (Кнут приводит примеры, показывающие, что этот алгоритм, использующий другие первые предположения, такие как 1123, 1234, не дает результатов при пяти попытках для каждого кода)
- Сыграйте в угадание, чтобы получить ответ из цветных и белых колышков.
- Если ответ — четыре цветных колышка, игра выиграна, алгоритм завершается.
- В противном случае удалите из S любой код, который не дал бы такой же ответ, если бы это (предположение) был код.
- Примените технику минимакса , чтобы найти следующее предположение, следующим образом: для каждого возможного предположения, то есть любого неиспользованного кода 1296, а не только кодов в S, вычислите, сколько возможностей в S будет исключено для каждого возможного показателя цветного / белого колышка. Оценка предположения — это минимальное количество возможностей, которые оно может исключить из S. Один проход через S для каждого неиспользованного кода 1296 даст счетчик совпадений для каждой найденной оценки цветного / белого колышка; оценка цветного / белого колышка с наибольшим количеством совпадений устраняет наименьшее количество возможностей; рассчитать оценку предположения, используя «минимальное исключенное количество элементов» = «количество элементов в S» — (минус) «максимальное количество совпадений». Из набора догадок с максимальным количеством баллов выберите одно в качестве следующего предположения, по возможности выбирая члена S. (Кнут следует соглашению о выборе предположения с наименьшим числовым значением, например, 2345 ниже, чем 3456. Кнут также приводит пример, показывающий, что в некоторых случаях ни один член S не будет среди предположений с наибольшим количеством очков, и, таким образом, предположение не может выиграть при следующий ход, но еще будет необходимо обеспечить победу через пять.)
- Повторите с шага 3.
Средний случай
Последующие математики находили различные алгоритмы, которые уменьшали среднее количество оборотов, необходимых для решения шаблона: в 1993 году Кенджи Кояма и Тони В. Лай провели исчерпывающий поиск в глубину, показав, что оптимальный метод решения случайного кода может обеспечить в среднем 5625/1296 = 4,3403 хода для решения с наихудшим сценарием из шести ходов.
Минимаксная ценность теории игр
Минимаксное значение в смысле теории игр составляет 5600/1290 = 4,341. Минимаксная стратегия кодмейкера заключается в равномерно распределенном выборе одного из 1290 шаблонов с двумя или более цветами.
Генетический алгоритм
Новый алгоритм со встроенным генетическим алгоритмом , в котором большой набор подходящих кодов собирается для разных поколений. Качество каждого из этих кодов определяется на основе сравнения с выбранными элементами подходящего набора.
Этот алгоритм основан на эвристике, которая присваивает оценку каждой подходящей комбинации на основе ее вероятности того, что она действительно является скрытой комбинацией.
Поскольку эта комбинация неизвестна, оценка основана на характеристиках набора подходящих решений или их выборки, найденной эволюционным алгоритмом.
Алгоритм работает следующим образом:
- Установить i = 1
- Воспроизвести фиксированную начальную догадку G 1
- Получите ответ X 1 и Y 1
- Повторите, пока X i ≠ P :
- Приращение i
- Положим E i = ∅ и h = 1.
- Инициализировать популяцию
- Повторите, пока h ≤ maxgen и | E i | ≤ макс. Размер :
- Создайте новую популяцию, используя кроссовер, мутацию, инверсию и перестановку
- Рассчитать фитнес
- Добавить подходящие комбинации к E i
- Приращение h
- Играть угадай G i, принадлежащий E i
- Получить ответ X i и Y i
Сложность и проблема выполнимости
В ноябре 2004 года Мишель де Бондт доказал, что решение доски Mastermind является NP-полной проблемой при игре с n колышками в строке и двумя цветами, показав, как представить в ней любую задачу 3SAT один из трех . Он также показал то же самое для Consistent Mastermind (играя в игру так, чтобы каждое предположение было кандидатом на секретный код, который согласуется с подсказками в предыдущих предположениях).
Проблема выполнимости Mastermind — это проблема принятия решения, которая задает вопрос: «Имея набор предположений и количество цветных и белых колышков, набранных для каждого предположения, существует ли хотя бы один секретный шаблон, который генерирует эти точные оценки?» (Если нет, то разработчик кода, должно быть, неправильно оценил хотя бы одно предположение.) В декабре 2005 года Джефф Стакман и Го-Цян Чжан показали в статье arXiv, что проблема выполнимости Mastermind является NP-полной.
Вариации
Варьируя количество цветов и количество лунок, вы получаете целый спектр игр Mastermind разного уровня сложности.
Другой распространенный вариант — поддержка разного количества игроков, берущих на себя роли создателя кода и взломщика кода.
Ниже приведены некоторые примеры игр Mastermind, выпущенных Invicta , Parker Brothers , Pressman , Hasbro и другими производителями игр: