[Перевод] Как я научил ИИ играть в Tetris для NES. Часть 2: ИИ

image

Первая часть (анализ кода) находится здесь: https://habr.com/post/420725/.

Алгоритм

Описание

Алгоритм непрерывно выполняет следующие шаги:

  1. Ждёт, пока не создастся новое тетримино.
  2. Проверяет тип нового созданного тетримино, тип следующего тетримино (фигура в поле предпросмотра) и содержимое игрового поля.
  3. Исследует все возможные способы добавления двух тетримино на игровое поле и оценивает каждую вероятность.
  4. Перемещает новое созданное тетримино, чтобы оно совпадало с местом наилучшенней обнаруженной вероятности.

Каждый из этих этапов подробно описан ниже.

Поиск блокировки

Рассмотрим упрощённую версию Tetris, в которой фигуры не падают автоматически. Единственный способ спустить фигуру вниз — это мягкий спуск. Убрав из игры тайминги, мы можем полностью описать состояние активного тетримино его позицией и ориентацией. Фигура имеет известное место изначального создания, а для преобразования из одного состояния в другое используются следующие операции:

  • Перемещение на один шаг вниз
  • Перемещение на один шаг влево
  • Перемещение на один шаг вправо
  • Поворот на один шаг против часовой стрелки
  • Поворот на один шаг по часовой стрелке

Читать дальше →
[Перевод] Как я научил ИИ играть в Tetris для NES. Часть 2: ИИ
Source: geektimes