электронные крестики нолики на стене

Альтернативные крестики-нолики

Однажды на пикнике я заметил математиков, толпящихся возле игры, интереса к которой я ожидал меньше всего: крестики-нолики.

Вы могли и сами заметить, что игра крестики-нолики смертельно скучна. В ней нет места творческой идее или внезапному озарению. Хорошие игроки всегда играют вничью. Игра неизбежно идёт примерно так:

5b4219822ee10434dc554b618989150d

Но математики на пикнике играли в более изощренную версию игры. В каждой из клеток на квадратном поле они нарисовали поле поменьше:

19c6abdc585cc6077db0a7fecb127e96

По мере наблюдения я заметил основные правила:

1. Каждый ход делается в одном из маленьких полей.

5f303d7ae3cef7d7d4907e20e665488a

2. Достигший в маленьком поле расположения трёх одинаковых фигур в ряд выигрывает это поле.

cd7cd37767180600ad3feb0a342f117e

3. Чтобы выиграть игру, необходимо одержать победы в трёх маленьких полях в ряд.

773466324125ee7028cf60264b4dcd92

Но чтобы понять самое важное правило, мне потребовалось некоторое время:

Игрок не выбирает одно из девяти маленьких полей, в котором он хочет ходить. Выбор определяется предыдущим ходом вашего оппонента. Клетка в маленьком поле, в которую он сходил — это то маленькое поле, в котором вам предстоит делать ход. (И клетка, в которую вы сходите, в свою очередь определяет, в каком маленьком поле будет ходить ваш оппонент.) К примеру, если я схожу сюда…

e93e04cf4540cfb5223a037e117dd0b4

Ваш следующий ход вы будете делать сюда…

2b9d413aeda955dc170576a2f09f7c5e

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

Результат выглядит очень необычно. Игроки могут двигаться случайно, легко пропуская конструкции в две и три одинаковые фигуры в ряд. Но в этом безумии есть порядок — они продумывают свои ходы наперёд, помня о возможности послать оппонента в нетронутую недвижимость. Это, в общем, куда более интересно, чем обычные крестики-нолики.

446c301d3e054b13ac1279e6a85d8bfb

Необходима пара условностей:

1. Что если мой оппонент отправляет меня в маленькое поле, в котором уже была одержана победа? Это неудачная ситуация. Если там остались незаполненные клетки, вам придётся выбрать одну из них. Хотя повлиять на исход игры в этом поле вы уже не сможете, вы хотя бы определите, где будет ходить ваш оппонент.

3d6a434d7fb759874b182c5818a10ec7

2. Что если мой оппонент отправляет меня в заполненное поле? В этом случае, примите наши поздравления — вы можете выбрать для хода любое из полей. (Это означает, что вам следует избегать отсылов вашего оппонента в заполненное поле!)

34ff66c1d9551f6043aeb816e54061b6

Когда я вижу, как мои студенты играют в крестики-нолики, я сдерживаю желание закатить глаза и показываю им эту игру. Вы можете поспорить, что игра развивает математические навыки (дедуктивное умозаключение, условное мышление, геометрическая идея подобия), но какая разница? В любом случае игра хороша.

И последнее: я разработал стратегию, которую я скромно назвал Гамбит Орлина. Вы начинаете захватом самой центральной клетки.

b9d79dc4b1fa844306c784f4cdf18eb9

Вашему оппоненту придётся поставить нолик в любой из других клеток.

003e47e052d7d6f3ba813d1c322aabf1

Вновь ходите в центр.

1b3715343976dfaf578e5da7c0b9d019

Нолики начинают образовывать ряд.

7834e2d8254d696fae30f085d50267d6

Опять ходите в центр.

19de17e79717ce3920e97ffafaa7f05f

Ваш оппонент образовывает победный ряд, смеясь над вашей глупостью.

9044a78d03fa34e9fbd196e42774bc90

Вновь ходите в центр.

a71563149f45f8ec12229e4b27bf016c

Оппонент видит хитрость, на которую вы пошли…

414e50b6c610151a74c706cceed6a6c2

Вновь сходите в центр. Ваш оппонент неохотно понимает, что остановить вас невозможно.

49713be6eeee4749cc0fec648ae54ac2

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

26b324c602d1b80e9787a0ab85c9a5b8

Словом, это альтернативные крестики-нолики. Играйте! Дайте знать, как у вас дела.

Дополнение 18 июня: Частый (и неглупый) вопрос: «Что делать, если в одном из маленьких полей ничья?» Похоже, есть два варианта:

1. Поле считается ни за крестик, ни за нолик. (Так играю я.)

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

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

Источник

Почти оптимальное решение трёхмерных 4x4x4 крестиков-ноликов

Все знают игру крестики-нолики 3×3. При правильной игре при первом ходе крестиков результатом является ничья. Можно вручную составить дерево ходов, где на любой ход ноликов, существует ход крестиков, который ведет к наилучшему результату (для крестиков), то есть к ничьей или выигрышу. Это дерево ходов исчерпывает все варианты, поэтому говорят, что игра «решена». Существует трехмерная разновидность крестиков-ноликов 4x4x4 для которой ответ на вопрос, кто победит при первом ходе крестиков, не очевиден. Более того, возникает вопрос, можно ли построить такое минимальное дерево, которое будет решать эту задачу.

Ответ на этот вопрос под катом.

Напомню, что из себя представляет игра крестики-нолики 4x4x4 (её еще называют Qubic).
Это куб, состоящий из 64 полей, в котором для выигрыша необходимо поставить 4 подряд идущих крестика или нолика, причем они могут идти по любой линии, включая главные диагонали. Всего существует 76 таких линий — 48 горизонталей и вертикалей, 24 диагонали и 4 главные диагонали. Учитывая это, можно заметить, что не все поля одинаковы: существуют 8 угловых и 8 центральных полей, которые контролируют 7 линий и 48 остальных полей, которые контролируют по 4 линии. Поэтому, имеет смысл стараться занимать позиции, которые контролируют больше линий.

image loader

Какова же сложность построения дерева решений для этой игры? Грубо можно оценить как 2 в степени 64 вариантов, что достаточно много. Конечно, не все эти варианты реализуются в игре и многие ветви дерева отсекаются достаточно быстро, но и в этом случае построение такого дерева путем простого перебора не представляется возможным. Как же можно уменьшить перебор для того, чтобы решить эту задачу? Можно заметить, что после нескольких ходов крестиков и ноликов может возникнуть ситуация, при которой возможно создать угрозу противнику, поставив три крестика или нолика по одной линии. При такой угрозе противник вынужден делать свой следующий ход на оставшееся пустое место в данной линии, иначе он проиграет на следующем ходе. Таких ходов с угрозой можно делать несколько подряд, если в наличии имеется достаточное количество линий, на которых находятся только два крестика или, соответственно, нолика. Если такая цепочка ходов приводит к ситуации, в которой существует две линии с тремя крестиками или ноликами, то соответствующий игрок проигрывает. Это называется форсированным выигрышем.

Пронумеруем все поля числами от 0 до 63 начиная с верхней грани и идя горизонтальными линиями слева направо.

image loader

Проиллюстрируем это на примере одной игры:

Здесь крестики делают первый ход в левый дальний угол на верхней грани (0), затем нолики отвечают в правый дальний угол на той же грани (3). Крестики ходят в левый ближний угол на нижней грани (60), нолики отвечают в поле на второй сверху грани и т.д. После хода ноликов в 63, крестики начинают последовательность форсированных ходов: 4 — шах. Нолики вынуждены отвечать в 8, крестик 5 шах, нолики отвечают в 10 и т.д. до тех пор, пока у крестиков не образуются две линии с тремя крестиками. Нолики проиграли.

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

Исторический экскурс

Первым, кто решил эту игру был Паташник (Patashnik) в начале 80-х годов. Он вручную подбирал начальные комбинации, а затем искал выигрышный ход с помощью компьютера. Он показал, что если крестики ходят в угол, то они всегда выигрывают при правильной игре. Следующий шаг сделал Виктор Аллис (Victor Allis). В своей диссертации в середине 90-х годов он показал, что решение может быть получено полностью на компьютере. Однако, он проверял не все варианты, которыми крестики могут прийти к выигрышу, а только десять первых, наиболее перспективных. Поэтому его решение не было оптимальным и он оставил эту задачу другим исследователям.

Решением этой задачи оптимальным образом, то есть нахождением минимального дерева решил заняться я. Очевидно, что для этого необходимо использовать поиск в ширину, в отличие от поиска в глубину у Аллиса. В первую очередь, был реализован поиск форсированного выигрыша для произвольной ситуации. Оказалось, однако, что он получился довольно медленный, поскольку поиск в глубину для форсированного выигрыша для длинных комбинаций довольно затратный. Выход был найден путем добавления хранилища уже просчитанных вариантов в std::unordered_set. Стоит сказать, что игровое поле было закодировано в виде двух 64 битных переменных, одной для крестиков, одной для ноликов, где 1 означает наличие крестика или нолика в соответствующем поле. Такое кэширование дало значительное ускорение. Однако, основная проблема заключалась в поиске в ширину для нефорсированных ходов. При обычном поиске без оптимизации расчет не заканчивался за разумное время.

Пришлось опять обратиться к кэшированию. К просчитанному игровому полю был добавлен еще один байт с результатом расчета поддерева для этого варианта расстановки крестиков и ноликов. При этом кодировка игрового поля стала занимать 17 байтов. Таким образом, при поиске в ширину и постепенном увеличении глубины дерева можно было отбрасывать уже просчитанные поддеревья. С помощью этого мне удалось рассчитать минимальные деревья
для первого хода крестика в угол (клетка 0) и ответов ноликов во все поля, которые контролируют по четыре линии.

Трудности возникли, если нолики первым ответным ходом занимали поле, которое контролировало семь линий. В этом случае объем памяти, занимаемой кэшем стал превышать 32 гигабайта ОЗУ, и мой Linux уходил в своп. Необходимо было искать другое решение.

Тут я обратился к тому факту, что игровое поле имеет множество автоморфизмов, то есть если найти решение для одной комбинации крестиков и ноликов, то и комбинации, соответствующие различным поворотам и отражениям также будут иметь решение. Тут надо заметить, что благодаря этим автоморфизмам первый ход крестиков имеет всего два варианта — один в поле 0 (контролирующее 7 линий) и один в поле 1 (контролирующее 4 линии). Поэтому в моем случае первый ход крестики делают всегда в поле 0. Но это справедливо только для пустого поля.

Вернемся, однако, к автоморфизмам для произвольного игрового поля. Как их все найти?
Я использовал следующий способ: поскольку у кубика размерность три, то можно переставлять координаты (таких перестановок будет 6) и делать отражения (их будет 8). Стало быть, всего пространственных автоморфизмов будет 48. Однако, у кубика есть еще два внутренних автоморфизма. Один переставляет координаты полей в первой и второй паре в каждой линии,
а второй оставляет первое и последнее поле на месте, а переставляет только координаты для второго и третьего поля. Эти два автоморфизма можно также применить одновременно. Таким образом, для каждого из 48 пространственных автоморфизмов существуют четыре
(включая тривиальный) внутренних автоморфизмов. Иного для всего кубика существуют 192 автоморфизма. Это дает надежду на существенное сокращение количества хранимых уже просчитанных полей.

Однако, тут возникает другая проблема: если проверять все 192 автоморфизма, то необходимо быстро преобразовывать игровое поле путем перестановки бит. Если это преобразование не сделать быстрым, то все время будет уходить на него, выигрыша в производительности не будет и вся затея с автоморфизмами вылетит в трубу. Поэтому я занялся поиском в интернете быстрого способа переставлять биты. Сказать честно, я не нашел ничего подходящего. Единственный приемлемый быстрый способ переставить биты — это заранее составить таблицу и выбирать в ней уже готовое решение имея в качестве индекса текущее игровое поле. Для меня такой способ не подходил, поскольку необходимо было иметь массив из 2 в степени 64 шестидесятибитных слов.

Я уже совсем хотел оставить эту идею, однако, мне в голову пришла мысль о том, что не обязательно иметь одну большую таблицу, а можно иметь несколько маленьких. В принципе, можно было выбрать разное количество таких таблиц, но я остановился на 8 таблицах по 256 слов (для каждого автоморфизма). Таким образом, для перестановки бит я беру один байт из 64 битного поля и, в заранее просчитанной таблице, выбираю шаблон, где биты уже стоят на своих местах (если они, конечно, не нулевые в исходном поле). Затем беру следующий байт из 64 битного поля и в следующей заранее просчитанной таблице выбираю другой шаблон и делаю логическое «или» с первым. И так 8 раз. Поскольку эти операции не содержат условных переходов, они должны производиться достаточно быстро не нарушая конвейера в процессоре.

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

Заключение и последующие разработки

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

Таким образом, игра крестики-нолики 4x4x4 полностью просчитана, крестики всегда выигрывают и эту тему можно закрывать? Не совсем. Дело в том, что поскольку крестики ходят первыми, они имеют преимущество. Что, если попробовать это преимущество как-либо скомпенсировать? Я предлагаю следующую идею — запретить крестикам первым ходом ставить крестик в поле, которое контролирует 7 линий, ограничивая их только полями, контролирующими только 4 линии. Несмотря на то, что это кажется небольшим изменением, на самом деле результат игры может существенно измениться и нолики смогут свести игру в ничью, а может, и выиграть. Так, что тут есть что исследовать.

Источник

Стратегические крестики-нолики (Starategic Tic-Tac-Toe)

Играть одну партию в крестики-нолики более двух часов — легко.

image loader

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

Что предлагается?

Игра Starategic Tic-Tac-Toe (STTT) или Стратегические крестики-нолики это, как и её прародитель, игра для двух участников для которой необходимы лишь карандаш и бумага. Она является надмножеством игры Ultimate Tic-Tac-Toe также как Ultimate Tic-Tac-Toe является надмножеством обычных крестиков-ноликов (Ordinary Tic-Tac-Toe). Задача игры — помочь игрокам приобрести навыки стратегического мышления.
Домашняя страница проекта

Содержание

Термины и определения

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

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

Правила игры

Задавая и анализируя данный класс игр (надмножество игры Крестики-нолики) мы, для упрощения понимания и сравнения, разделим правила игры на три части: правила хода, правила выигрыша и ограничения. Рассмотрим игру Оперативные крестики-нолики согласно данному подходу.

Оперативные крестики-нолики

Теперь, когда правила знакомой всем игры заданы согласно предлагаемому подходу, читателю будет легче ориентироваться в правилах Тактических и Стратегических крестиков-ноликов.
Наборы правил Стратегических крестиков-ноликов основываются на правилах Тактических крестиков ноликов, поэтому приведём и их в предлагаемой форме.

Тактические крестики-нолики

image loader

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

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

Настало время поговорить о самих Стратегических крестиках-ноликах. В первую очередь при создании новой игры была поставлена цель расширить текущее игровое поле за счёт увеличения количества «уровней» игры, в следствии этого возникла необходимость составить новые правила хода, поскольку старые, как мы увидим ниже, были полными и не могли предоставить новые пути задания ходов игроков. За столом обсуждений будущих правил данной игры родились три основных направления в последствии преобразовавшихся в наборы правил: Тактический, Функциональный и Гиперфункциональный. Опишем данные наборы правил.

Стратегические крестики-нолики

Общие правила

Все три набора правил сохраняют правила выигрыша и ограничения на Тактическим уровне и объявляют те же правила для Стратегического уровня. Таким образом правила выигрыша и ограничения для Стратегического уровня выглядят точно также как правила Тактических крестиков-ноликов с точностью до названий клеток. Читателю предлагается самому написать правила Стратегического уровня для проверки понимания текущих терминов и положений.

Тактический набор правил

Правила Тактических крестиков-ноликов задают отображение (mapping) из множества Клеток в множество Тактических клеток для определения того куда должен ходить текущий игрок в зависимости от хода предыдущего игрока или другими совами правила хода на Тактическом уровне. Тактический набор правил сохраняет отображение из множества Клеток предыдущего Оперативного поля в множество Тактических клеток текущего Тактического поля, при этом декларируя, что отображение из множества Тактических клеток предыдущего Тактического поля в множество Стратегических клеток Стратегического поля сохраняется таким же как и отображение из множества Клеток предыдущего Оперативного поля в множество Тактических клеток текущего Тактического поля или другими словами правила хода на Стратегическом уровне такие же как и на Тактическом уровне. Наглядную иллюстрацию данного положения можно найти под спойлером.

IllustrationНа картинке игрок сходил в первую Оперативную клетку четвёртого Оперативного поля пятого Тактического поля, а это означает, что следующий игрок должен ходить любую из Оперативных клеток первой Тактической клетки (зелёная) четвёртого Тактического поля (красное), что в свою очередь определит ход следующего игрока.

Функциональный набор правил

Вторая идея заключалась в сопоставлении строкам 9х1 (или столбцам 1х9, как будет показано ниже это не столь значительно и выбор в пользу строк был сделан лишь из эстетики получающегося игрового поля) клеток номера Стратегической клетки, в которую должен быть произведён следующий ход. Данная идея была реализована путём помещения номеров Стратегических клеток, для следующего хода, слева в той же строке, что и Клетка текущего хода. Чтобы понять о чём идёт речь перейдите в раздел с игровыми полями. Особенности выбора номеров следующих Стратегических клеток будут раскрыты в разделе анализа игры. Правила отображения из множества Клеток текущего Оперативного поля в множество Тактических клеток следующего Тактического поля сохраняются неизменными.

Гиперфункциональный набор правил

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

Игровые поля

Название поля Размер в Клетках Можно ли
нарисовать от руки
Поместится ли на
половине
тетрадного листа
Игровые поля
Базовое 29х29 Да Да
Пронумерованное 31х31 Да Да
Функциональное 35х31 Да Да
Гиперфункциональное 35х31 Нет Да
Полное Да Нет
Вспомогательные поля
Поле помощи 11х15 Да Да
Поле записи ходов 6хN Да Да
Непрерывное поле
записи ходов
Да Да

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

Basic lowБазовое поле — то с чего начинается игра. Имея только его вы уже можете играть в любой вариант Стратегических крестиков-ноликов, состоит из девяти полей для игры в Тактические крестики-нолики.

Numbered lowПронумерованное поле — это Базовое поле, Тактические клетки которого пронумерованы для упрощения отслеживания деятельности игроков в ходе игры. Число рядом с Тактической клеткой отражает как номер Стратегической клетки (десятки) так и номер Тактической клетки (единицы).

Mapped lowФункциональное поле — это Пронумерованное поле на котором возможна игра (проще следить за её ходом) с Функциональным набором правил. Для данного поля положение чисел, задающих следующую Стратегическую клетку определено слева от соответствующих строчек, что позволяет сохранять размеры поля такими, чтобы оно могло уместиться на половине тетрадного листа.

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

Help fieldДанное поле было создано для того чтобы игроки не путались при возобновлении игры и не вспоминали кому принадлежит какая клетка (Стратегическая или Тактическая). По ходу игры игроки могут отмечать свои успехи тем самым сохраняя прогресс партии.

Move field lowДанное поле было разработано с целью помощи игрокам в запоминании прогресса игры, очерёдности хода, проверки правильности игрового поля. В предлагаемом варианте данного поля в течении своего хода необходимо записать номера Стратегической (S) Тактической (T) и Операционной (O) клетки, в которую игрок производит ход. Данный вариант поля преимущественно предназначен для игры с Функциональным и Гиперфункциональным набором правил, для Тактического же набора было специально разработано Непрерывное поле записи ходов. Для данного поля существует несколько вариантов исполнения, все они доступны для скачивания.

Move field variant2 lowНепрерывное поле записи ходов — специально разработанное поле записи ходов, предназначенное для игры с Тактическим набором правил. Необходимость его появления была обоснована непосредственным игровым опытом автора. В данном поле дополнительные записи и повторение чисел для Тактического набора правил было сведено к минимуму. Ниже в статье приведён пример игры происходившей с использованием данного поля. Для данного поля существует несколько вариантов исполнения, все они доступны для скачивания.

GameField lowПолное поле представляет собой совокупность игровых и вспомогательных полей, представленную на одном листе. Для данного поля существует несколько вариантов исполнения, все они доступны для скачивания.

Анализ игры

В данном разделе будет рассказано о том как был обоснован выбор чисел, означающих следующую Стратегическую ячейку для Функционального и Гиперфункционального набора правил. Метод анализа игры заключается в следующем:

Весь код, реализующий этапы анализа можно найти по ссылке. Код написан на Lua 5.1 и запустится как на интерпретаторе так и на JIT-компиляторе (второй более предпочтителен из-за вычислительной сложности предлагаемого метода). Оконечные этапы анализа — построение heatmap’ов и подсчёт среднего расстояния проводился в Excel.

Проанализируем полученные результаты. Как опорный возьмём результат для Тактического набора правил. И так для данного набора правил удобно взять отображение из множества Тактических клеток в него же, среднее расстояние между Тактическими клетками получилось равным 1.(8) хода. Не много, это означает, что для успешной игры в памяти стоит хранить последние два хода и думать как минимум на два хода вперёд. Heatmap можно увидеть под спойлером. Для всех heatmap’ов шкала идёт от красного к зелёному через жёлтый на увеличение.

TacticalMap

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

Для данного набора правил было удобно взять отображение из множества триплетов Тактических клеток в него же (в триплеты объединены Тактические клетки 1-3, 4-6, 7-9 для каждой Стратегической ячейки). Взглянем на результаты: оптимальными были названы два набора чисел под кодовыми названиями map34 и map67, для данных наборов среднее расстояние между триплетами составило 2.(6) хода. Их особенностью является то, что расстояние от каждого триплета до самого себя составляет ровно 3 хода.

map34

map67

Для визуального сравнения представлены heatmap’ы других наборов:
map14

map14

map42

Последним проанализируем Гиперфункциональный набор правил. При детальном рассмотрении игровых полей, созданных под данный набор правил читатель мог увидеть закономерность в расположении цифр, отвечающих за следующую Стратегическую клетку. Используя данную закономерность мы создали девять наборов чисел описывающих переходя для Гиперфункционального набора правил, из которых был найден оптимальный получивший кодовое имя hmap2. Его показатели составили 2.206 хода в среднем между Тактическими клетками и ровно 3 хода чтобы попасть в туже Тактическую клетку.

hmap1

hmap2

Выводы и послесловие

В статье было рассказано о новой игре в своём типе — Стратегических крестиках-ноликах, дизайнерские решения в ходе создания игры были обоснованы путём анализа.

Направления будущих работ

Основными направлениями авторам представляются:

Послесловие

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

Источник

Adblock
detector