Как стать автором
Обновить

Еще один способ автоматизировать/тестировать игру

Время на прочтение2 мин
Количество просмотров19K
У Вас есть знакомый, который постоянно играет в какую-нибудь игру в контакте? Не знаю как Вас, а меня нервирует когда взрослый человек тратит по 12 часов на не очень умную игру. Вот глядя на одного такого знакомого захотелось написать робота, который бы играл вместо него.

Не так давно на Хабре была целая волна статей, посвященных ботам для браузерных игр: [1], [2], [3] и т.д.
Казалось бы все способы уже перебрали, но недавно я натолкнулся еще на один весьма интересный и менее трудоемкий способ.

Кому хочется посмотреть как же написать бота для игры в 30 строчек кода — прошу под кат.


Инструменты

Инструмент, которым будем пользоваться называется Sikuli.
Этот инструмент позволяет автоматизировать такие действия как щелчки, перетаскивания и т.д. с помощью скриншотов. Т.е. в отличие от AutoIt не нужно изобретать алгоритм поиска объекта. Sikuli позаботится об этом. А нам остается заняться изобретением алгоритма.

Алгоритм

Мой выбор пал на игру «Зомби Ферма». Смысл прост: вскапывай, сажай, собирай урожай. Вот только делать это надо много и постоянно. Я не стал сильно усложнять алгоритм и вот что в итоге получилось:

Делать вечно:
1) вскопать 15 грядок
2) засадить 15 грядок
3) собрать 15 плодов


Самым сложным (хотя какая тут к черту сложность!) было купить семена для посадки. В окне выбора семян — куча всего и все очень похожее.


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


Код

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

Язык плохо поддается подсветке ввиду наличия картинок в коде, поэтому весь код представлен картинкой.
Исходники

Как это работает



P.S.

Сайт проекта Sikuli — sikuli.org
Теги:
Хабы:
Всего голосов 72: ↑69 и ↓3+66
Комментарии20

Публикации

Истории

Работа

Unity разработчик
15 вакансий

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
10 – 11 октября
HR IT & Team Lead конференция «Битва за IT-таланты»
МоскваОнлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн