вторник, 3 января 2012 г.

Универсальный бот для игры Flood-It

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

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