Последний год я работал над простым редактором 2D видеоигр. Несмотря на то, что мне удалось реализовать любую игру, которую я пробовал до сих пор, я хотел бы теоретически подтвердить ее универсальность. Моя идея состоит в том, чтобы проверить его, проверив его эквивалентность с языком WHILE (очень похож) или доказав, что это Полный Тьюринг.
Игры, созданные редактором, имеют следующие особенности:
- Есть только один тип игрового объекта. По аналогии с агентами в многоагентной системе.
- Они имеют одинаковый набор свойств (геометрия c, рендеринг, физика, звук и т. Д. c.), И они также могут хранить новые свойства (числовые c и логические) при необходимости.
- Каждый игровой объект может иметь столько скриптов, сколько необходимо. Они выполняются последовательно.
- Сценарии определяются как двоичные деревья решений (с вложенной структурой IF-THEN-ELSE), состоящие из условий и действий.
- Условия используются для управления потоком сценария, и они полагаются на логические выражения с операторами отношения (=,! =, <, <=,> =,>). Нет логических операторов, таких как И или ИЛИ. Редактор предоставляет всего 5 различных условий.
- Действия - это элементы, которые создают или уничтожают игровые объекты или изменяют их свойства. Его работа основана на арифметических c выражениях. Всего в редакторе всего 6 различных типов действий.
- Также редактор не позволяет использовать сложные структуры данных, такие как векторы или списки.
Отличия между мой язык и язык WHILE:
- В нем нет циклов. Вместо этого он полагается на постоянную оценку игры l oop. Таким образом, существует глобальный неявный l oop.
- Он не имеет команды SKIP.
До сегодняшнего дня мне удалось завершить разработку всех игр что я пробовал. Некоторые из них - известные аркадные игры, такие как Asteroids, Blocks, Frogger, Lunar Lander, Pacman, Pong, Tetris или MarioBros. Я не нашел ни одного, что не смог бы разработать. Я даже реализовал алгоритм A *.
До сегодняшнего дня мне удалось завершить разработку всех игр, которые я пробовал. Некоторые из них - известные аркадные игры, такие как Asteroids, Blocks, Frogger, Lunar Lander, Pacman, Pong, Tetris или MarioBros. Я не нашел ни одного, что не смог бы разработать. Я даже реализовал алгоритм A *.
При всем этом, что было бы самым простым способом проверить эквивалентность с языком WHILE? Я хочу официально подтвердить и продемонстрировать, что мой язык позволяет мне создавать любые игры.