Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Zillions of Games [1] [2] - коммерческая общая игровая система, разработанная Джеффом Маллеттом и Марком Лефлером в 1998 году. [3] Правила игры задаются с помощью S-выражений , языка правил Zillions . Он был разработан для обработки в основном абстрактных стратегических настольных игр или головоломок . [4] После анализа правил игры искусственный интеллект системы может автоматически играть с одним или несколькими игроками. Он рассматривает головоломки как пасьянсы, и его ИИ может использоваться для их решения.

Язык сценариев [ править ]

Язык сценариев Zillions-of-Games использует S-выражения . Правила хранятся в текстовом файле с расширением ".zrf" (файл правил zillions). Пользователи могут создавать свои собственные ZRF-файлы и заставлять ИИ Zillions-of-Games играть в их недавно созданную игру.

Вот пример правил игры в крестики-нолики (авторское право Zillions Development Inc.): [5]

( определить добавление в пустое  (( проверить  пустое? )  добавить ))( игра  ( название  «Крестики-нолики» )  ( описание  «...» )  ( история  «...» )  ( стратегия  «...» )  ( игроки  X  O )  ( порядок хода  X  O )  ( доска  ( изображение  "images \ TicTacToe \ TTTbrd.bmp" )  ( сетка  ( начальный прямоугольник  16  16  112  112 )  ; верхнее левое положение  ( размеры  ; 3x3  ("верх- / средний- / нижний-"  ( 0  112 ))  ; ряды  ( «левый / средний / правый»  ( 112  0 )))  ; columns  ( direction  ( n  -1  0 )  ( e  0  1 )  ( nw  -1  -1 )  ( ne  -1  1 ))  )  )  ( кусок  ( имя  человек ) ( справка  «Человек: падает на любой пустой квадрат» ) ( изображение  Икс "Images \ TicTacToe \ TTTX.bmp"  O  "Images \ TicTacToe \ TTTO.bmp" )  ( капли  ( дополнение к пустой ))  )  ( платы установки  ( X  ( мужчина  от  5 ))  ( O  ( мужчина  от  5 ) )  ) ( Втягивании условия  ( X  O )  пат )  ( беспроигрышная условие  ( X  O )  ( или ( относительной конфигурация  человека  п  человек  п  человек )  ( относительная конфигурация  люди  е  людей  е  люди )  ( относительная конфигурация  человек  пе  Человек  пе  человек )  ( относительная конфигурация  man  nw  man  nw  man ) )  ) )
Играть в крестики-нолики в Zillions-of-Games.

Результат загрузки этого ZRF в Zillions-of-Games и игры против компьютера показан на скриншоте справа.

Определение игр обычно содержит следующий образец: [6]

  • Название игры . Один ZRF может содержать более одной игры, и название игры позволяет пользователю выбрать определенную игру.
  • Описание, история и стратегия игры . Это текст, который отображается пользователю по запросу, чтобы объяснить правила игры, историю и дать общие советы по игровому процессу.
  • Игроки . Это список имен игроков, используемых в игре. Например, для шахмат это белые , черные . Имя игрока используется в некоторых других местах, например, в определениях начальной позиции или игровых целей. Может быть только один игрок (например, для головоломок), двое и более.
  • Порядок хода Определяет порядок ходов, совершаемых игроками. В приведенном выше примере игрок X начинает, игрок O двигается, а затем вся последовательность повторяется. Определение порядка хода может быть более сложным, например, для сбалансированных двухходовых шахмат это будет: (порядок хода белых повторяется черный черный белый белый) , который определяет следующий порядок ходов: белые, черные, черные, белые , Белый, черный, черный, белый, белый и т. Д.
Определение доски в Zillions-of-Games. На этом рисунке показаны все позиции в определенной игре и их соответствующие названия. Также показаны все указанные направления от среднего до среднего положения.
  • Определение платы. В этих разделах указывается геометрия игровой доски, отдельные позиции доски и связи между ними. Определение платы в приведенном выше примере сначала указывает растровое изображение, которое будет использоваться для платы. Двухмерная доска определяется с использованием координат пикселей из растрового изображения. В определении («верх- / средний- / нижний-» (0 112)) указаны обозначения, которые будут использоваться для строк, а также смещение в пикселях между строками. Текстовое обозначение используется в списке ходов, а также для сохранения сыгранной игры в файл ".zsg" (zillions сохраненная игра). Связи между положением платы указываются в заявлении (направления ...) . В приведенном выше примере определены четыре направления: n (север) - на один шаг вверх, e.(восток) - один шаг вправо, nw - по диагонали вверх-влево и ne - по диагонали вверх-вправо. Направления используются в определениях ходов, а также в определениях целей игры.
  • Определение штуки. Определяет элементы, используемые в игре, их имена и способ передвижения. В приведенном выше примере определена одна фигура, Человек , которую можно сбросить на любую пустую позицию доски. Кроме того , указаны два растровых изображения для игроков X и O.
  • Настройка платы. Задает начальную позицию игры. В приведенном выше примере показано, что изначально доска пуста и с каждой стороны по 5 штук, которые можно выбросить.
  • Цель игры. Условие, когда один из игроков выигрывает или когда происходит ничья. В Tic-Tac-Toe условие выигрыша (3-в-ряд) определяется как относительная конфигурация фигур с использованием направлений n , e , ne и nw из определения доски.

Реализованные игры [ править ]

Zillions of Games называется так из-за того, что в ней можно играть в очень большое количество игр, запрограммированных пользователем. В систему входит более 300 игр и головоломок. К ним относятся многие популярные настольные игры, такие как Alquerque , Fox and geese , Go , Gomoku , Jungle , Halma , Nim , Nine men morris , Reversi , Tafl и Tic-tac-toe . В комплект входит множество вариантов шашек , например русские и турецкие шашки . Помимо стандартных шахмат ФИДЕ ,Zillions of Games содержит множество национальных шахматных вариантов, таких как сёги , сянци , чанги , а также ряд популярных шахматных вариантов, таких как Ultima , Extinction chess , Losing Chess , shatranj , Berolina chess , Grand Chess и другие. Он также включает в себя несколько головоломок, таких как 15 головоломок , Ханойские башни , восемь королев и множество пасьянсов .

Вскоре после того, как он появился на рынке в конце 1998 года, пользователи Zillions of Games начали программировать для него новые игры и головоломки, создавая многие из них сами. Вскоре начали появляться две большие коллекции файлов правил Zillions (ZRF). Один был на сайте Zillions-of-Games , а другой - на сайте Chess Variant Pages . [7] Первые собрали воедино все виды ZRF, а вторые сосредоточились на ZRF для шахматных вариантов . По состоянию на ноябрь 2017 года интерфейс ZILLIONS содержал 2577 ZRF, созданных 462 авторами ZRF [8], а коллекция Chess Variant Pages насчитывала 794 ZRF шахматных вариантов.

Игры запрограммированных пользователей включают такие игры , как 4D Tic-Tac-Toe, Солитер , Кубик Рубика , Teeko , Манкали , Элис шахматы , Chess960 , шестиугольная шахматы , Star Trek Трехмерной шахматы и Sokoban . Помимо различных игр и головоломок, существуют также обучающие ZRF, такие как игра клеточного автомата , калькулятор и некоторые модели машин Тьюринга .

Использует [ редактировать ]

Zillions of Games можно использовать для следующего:

  • Играя в любую из игр или головоломок, которые идут с ним.
  • Играя в любые бесплатные игры и головоломки, которые были запрограммированы для этого пользователями.
  • Играйте в игры с удаленными пользователями через Интернет или модемное соединение.
  • Играйте в игры, отправляя файлы ZSG по электронной почте туда и обратно.
  • Программируйте его, чтобы играть в новые игры и головоломки.
  • Используя его как инструмент разработки для создания новых игр и головоломок.
  • Тестирование новых игр на маневренность и другие качества, позволяя Zillions играть в них против самого себя.
  • Решение головоломок или обеспечение возможности решения вновь созданных головоломок.
  • Создание диаграмм, которые можно вырезать из снимков экрана.

Возможности [ править ]

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

Помимо определения того, как движутся фигуры, Zillions может определять, как фигуры могут быть сброшены. Это для введения в игру новых фигур. Это бесполезно для сёги, когда «сбрасывает» захваченные фишки, хранящиеся по бокам доски. Он предназначен для таких игр, как Go, Reversi и Tic-Tac-Toe, которые обычно позволяют пользователям добавлять новые фигуры на доску. Как и в случае с перемещением фигур, это определяется алгоритмически, и это может быть что-то настолько простое, как позволить новой фигуре упасть только на пустое место или следовать более сложным правилам.

Начиная с версии 2.0, у Zillions появилась дополнительная возможность применять максимальные правила захвата (используемые в некоторых версиях Checkers ) и полнофункциональный движок для игры в го.

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

При необходимости стандартный движок ИИ можно заменить на движки, созданные пользователем. Затем эти движки могут использовать открывающие книги или другие функции, недоступные для стандартного ИИ. [9]

Ограничения [ править ]

Несмотря на универсальность, Zillions of Games имеет ряд нетривиальных ограничений:

  • Zillions Of Games предназначена исключительно для игр с идеальной информацией . Это делает его мало или вообще не использовать в достаточно играть несовершенный или скрытую информацию игра против AI, таких как карточные игры или настольных игры со скрытыми значениями штучных как Stratego . Вместо этого программа будет автоматически использовать всю доступную для себя информацию, включая карты в колоде и карты в руках всех других игроков. В игры по-прежнему могут играть люди, хотя нет поддержки для выборочного раскрытия информации только одному игроку. [4]
  • В его языке программирования отсутствует поддержка арифметики, функций и переменных, помимо некоторых логических флагов. [4]
  • Движок не имеет встроенной поддержки для целей, основанных на соединении, таких как Hex ; таким образом, эти цели должны быть реализованы вручную. [4]
  • Также нет поддержки наличия нескольких частей в одном месте или элементов, охватывающих несколько местоположений одновременно. Таким образом, требуются сложные обходные пути для игр, которые нуждаются в этих функциях, таких как Mancala , Laska или Quoridor . [4]
  • Как и большинство игровых программ с ИИ, движок по умолчанию плохо работает в играх с большими факторами ветвления, таких как сёги . [4]
  • В некоторых жизненно важных отношениях программа слишком ограничивает возможности.
    • Хотя он может распознавать повторение, единственный вид, который он может распознать, - это трехкратное повторение .
    • Хотя он может проверять различные условия выигрыша, проигрыша и ничьей в конце хода, он не может проверять какие-либо из них при оценке возможных ходов для фигуры. Следовательно, в сёги, например, нельзя запрограммировать всегда точно применять правило против мата королю с упавшей пешкой.
    • Многие варианты шахмат с участием нескольких игроков не могут быть воспроизведены, потому что они немедленно останавливают игру, когда первый игрок получает мат или пат .
  • В некоторых случаях качество игрового процесса снижается из-за того, что ИИ автоматически вычисляет неточные значения фигур, и нет возможности вручную заменить их точными значениями.

Многие из этих ограничений можно обойти с помощью таких расширений, как Axiom Development Kit. [10]

Ссылки [ править ]

  1. ^ Создание процедурного контента на основе поиска: таксономия и обзор , Джулиан Тогелиус , Георгиос Н. Яннакакис , Кеннет О. Стэнли , Кэмерон Браун , Транзакции IEEE по вычислительному интеллекту и искусственному интеллекту в играх 3 (3): 172 - 186 · октябрь 2011 г. doi : 10.1109 / TCIAIG.2011.2148116
  2. ^ Немецкая ассоциация чу сёги
  3. Дэвид Н. Л. Леви (2006). Роботы без ограничений . АК Петерс, ООО ISBN 1-56881-239-6.
  4. ^ a b c d e f g "Может ли Zillions поддержать эту игру?" FAQ от Zillions Development Corp.
  5. ^ Пример Tic-Tac-Toe взят из "TicTacToe.zrf" в установке Zillions-of-Games и немного упрощен. Использование в Википедии приведено в иллюстративных целях и, как полагают, соответствуетзаконам СШАо добросовестном использовании .
  6. ^ Полную спецификациюязыка сценариев Zillions-of-Games можно найти в Справочнике по языку Zillions , который можно найти вустановке Zillions .
  7. ^ Zillions of Games - Коллекция Chess Variant Pages вариантов шахмат для Zillions of Games
  8. ^ Бесплатные дополнительные игры для Zillions-of-Games
  9. ^ Возможности Zillions , возможности добавлены в версии 2.0
  10. Грег Шмидт (16 апреля 2016 г.). «Комплект разработчика Axiom» . Дата обращения 4 августа 2016 .

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • Обзор Zillions of Games от Ханса Бодландера
  • Музей Zillions of Games с тысячами игровых правил Zillions of Games, доступных для загрузки