Не так давно на Хабре была целая волна статей, посвященных ботам для браузерных игр: [1], [2], [3] и т.д.
Казалось бы все способы уже перебрали, но недавно я натолкнулся еще на один весьма интересный и менее трудоемкий способ.
Кому хочется посмотреть как же написать бота для игры в 30 строчек кода — прошу под кат.
Инструменты
Инструмент, которым будем пользоваться называется Sikuli.
Этот инструмент позволяет автоматизировать такие действия как щелчки, перетаскивания и т.д. с помощью скриншотов. Т.е. в отличие от AutoIt не нужно изобретать алгоритм поиска объекта. Sikuli позаботится об этом. А нам остается заняться изобретением алгоритма.
Алгоритм
Мой выбор пал на игру «Зомби Ферма». Смысл прост: вскапывай, сажай, собирай урожай. Вот только делать это надо много и постоянно. Я не стал сильно усложнять алгоритм и вот что в итоге получилось:
Делать вечно:
1) вскопать 15 грядок
2) засадить 15 грядок
3) собрать 15 плодовСамым сложным (хотя какая тут к черту сложность!) было купить семена для посадки. В окне выбора семян — куча всего и все очень похожее.

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

Код
А про 30 строчек кода я не соврал (если вычесть пусты строки). Вот они:

Язык плохо поддается подсветке ввиду наличия картинок в коде, поэтому весь код представлен картинкой.
Исходники
Как это работает
P.S.
Сайт проекта Sikuli — sikuli.org

