Очистка данных от Flash (Игры) - PullRequest
3 голосов
/ 20 апреля 2010

Я видел это видео, и мне действительно любопытно, как оно было выполнено. У кого-нибудь есть какие-либо идеи? Моя интуиция заключается в том, что он соскребает пиксели с экрана (по одному на каждый «ящик»), а затем вводит их в какую-то программу, чтобы определить следующий ход.

Является ли очистка попиксельным способом сделать это, или есть лучший способ? Я хочу сделать что-то подобное с Java или Python.

Спасибо

Ответы [ 2 ]

2 голосов
/ 21 апреля 2010

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

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

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

Что более интересно, так это логика принятия решений в игровом процессе, поскольку этот бот явно не 't просто помещая каждую фигуру в наиболее очевидную позицию, но намеренно стремясь создать возможности для очистки 3 или 4 рядов одновременно.

2 голосов
/ 21 апреля 2010

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

...