Метка «bot»

imageЗнаете, на aliexpress есть такие аукционы — Gaga Deals, сейчас там помойка, но когда-то были очень интересные предложения. Их идея заключалась в том, что:

  • Продажи стартуют каждый час
  • Число товаров ограничено
  • Кто первый встал того и тапки

Были очень вкусные лоты со скидкой 90%, топовые смартфоны этого года за 200-300 долларов, прошлогодние по 100 долларов. Разыгрывалось всего по 5 штук каждой позиции. Попробовал выиграть вручную, разумеется ничего не получилось. Ну и решил я написать бота…
Читать полностью »

Как выиграть в покер? Ответ нужно начать с уточнения, что в покер можно выиграть только в долгосрочной перспективе. Нет никакой легитимной возможности гарантированно выиграть отдельно взятую руку. И в дальнейшем, когда я буду говорить о победе, я буду иметь ввиду победу именно в долгосрочной перспективе (рост банкролла).

Читать полностью »

Как Минковский во Flappy Bird играл

Многие пробовали играть во Flappy Bird. Редко кому удается пролететь за 50 труб, очень немногие долетают до сотни-двух. Некоторые пробовали создать бота, в том числе на хабре. Удивительно, но даже у самого успешного бота, которого можно найти на просторах интернета, результаты не очень-то впечатляют – что-то около 160 очков. Возникает вопрос, а можно ли вообще играть во Flappy Bird бесконечно долго? Или всегда с некоторой, пусть и небольшой, вероятностью может встретиться последовательность препятствий, которую даже опытный игрок/идеальный бот не сможет преодолеть?

И тут на помощь приходит математика. Давайте найдем выигрышную стратегию для Flappy Bird.
Читать полностью »

Введение

imageКаждый, играя, хоть раз думал: «вот бы написать программу, которая играла бы за меня!». Но обычно эта мысль, так мыслью и остается… Постоянно что-то мешает: незнание с чего начать, страх перед неподъемностью задачи, шепоток из-за левого плеча «и зачем это? кому это надо, чтобы программа играла с программой?» и т.д.

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

Сейчас начнем с простого. С установления взаимосвязи между игрой и программой-игроком (ботом). В качестве подопытного кролика берется широкоизвестная игра Zuma.

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

Основная цель этой статьи: получить программу, которая самостоятельно раз за разом заходит в игровой процесс, там что-то делает, а при game over-е начинает всё заново. Далее этот каркас будет развиваться в направлении, чтобы бот всё дальше и всё дольше продержался в игре до game over-а.
Решаемые вспомогательные подзадачи: эмуляция мыши, перенаправление на виртуальную машину управления мышой, захват изображения.

Читать полностью »

Что может быть интереснее процесса игры в игры? Правильно! Процесс наблюдения за тем, как играет в игры написанный тобой бот.

Некоторое время, я размышлял, о чём бы написать свою первую статейку. Хотел написать о программировании микроконтроллеров, но оказалось трудно отделить части рабочих проектов от тех, что можно опубликовать без оглядки на коллег :-) Остановился на идее о ботах.

Введение

Боты для онлайн игр я бы грубо разделил на 3 разновидности по способам реализации:
1. Боты не использующие приложение игры. Имитирующие протокол обмена с сервером.
2. Боты работающие с процессом приложения игры. В случае с Web, работающие с окном браузера.
3. Боты работающие со скриншотом и имитирующие устройства ввода мышь и клавиатуру.
Читать полностью »

image Добрый день. В этой статье я опишу написание бота для онлайн mmo strategy игры Grepolis. Учтите, что правилами игры использование подобных програм запрещено, за это банят, и не безпричинно. Просто у меня хобби писать боты для игр. А писать не запрещено. Кому интересны логика и реализация, прошу под кат.
Читать полностью »

Это вторая часть поста на тему создания несложного бота для игры World of Warcraft. С первой частью можно ознакомиться здесь. Сегодня мы поговорим о

  1. написании Recorder'а клавиш и координат на языке AutoIt
  2. написании Player'a инструкций для бота
  3. математике 2D, как ориентироваться в декартовой системе координат без теоремы косинусов
  4. управлении роботом при недостаточном количестве датчиков
  5. мерах противодействия ботам

Создание несложного бота для WoW, программирование маршрутов (продолжение)

Recorder

Наша задача: чтение цветов пикселей, определение нажатий клавиш, фоновая работа с возможностью приостановки, посылка кликов в приложение. Здесь как нельзя лучше подойдет язык AutoIt. Чтобы написать то же самое на Си, пришлось бы Читать полностью »

Введение

Прочитал недавно пост, в котором автор рассказал о своём боте для торговли на аукционе в игре World of Warcraft. Его персонаж бегал челноком на небольшие расстояния и выполнял конкретные действия, строго заданные в управляющей программе. Воспользовавшись его идеями, я решил пойти немного дальше: пусть персонаж будет способен бегать по маршруту длительностью хотя бы пять минут, при этом должна быть возможность записывать маршрут и выполняемые действия извне, не прибегая к изменению самой программы управления. Описанное мной является развитием поста-оригинала, тем не менее я постарался, чтобы его чтение не было обязательным.
В посте я опишу

  1. Процесс создания тривиального аддона для пользовательского интерфейса WoW на языке Lua
    • Сериализация данных для передачи между частями системы
    • Передача с помощью цвета пикселей
  2. Процесс управления персонажем на языке AutoIt
    • Программа для записи выполняемых действий
    • Программа для воспроизведения
    • Мат.расчеты направления перемещения
    • Почему не стоит прибегать к чтению/записи памяти процесса
  3. Программа управления (ро)ботом с командами, понятными непрограммисту

Читать полностью »

После прочтения поста на хабре «Шахматный бот», хотелось сделать свой, но так как посчитал, что шахматы сразу не получатся, то решил потренироваться на шашках (чтоб было больше мотивации взял знаменитые «Русские стрип-шашки»).
В отличии от выше упомянутого поста, где только несколько скринов и видеоролик, постараюсь рассказать подробнее…
Бот для шашек (часть 1)Читать полностью »

Приветствую всех любителей шахмат и тех, кто быть может, случайно открыл эту статью. Разговор сегодня пойдет про то, как выдавать ходы шахматного движка за свои. Да, не честно!, но наверное любому шахматисту или просто любителю шахмат эта идея хоть раз, да приходила в голову. Ближе к телу… Первое что приходит на ум, это наладить диалог какой-то шахматной программы, работающей непосредственно на ПК, с конкретным приложением посредством GET&POST запросов. Начав копать в этом направлении в скором времени становиться понятно, что во-первых решение является «не гибким» т.к. придется существенно изменять код программы при адаптации ее к другому приложению, а во-вторых затрачивать процессорное время, что является достаточно серьезным фактором, даже для средних по параметрам ПК. Из выше сказанного можно сделать вывод:
1. Все вычисления должны быть на удаленном сервер (желательно не нашем)
2. Работать с приложением так, как бы это делал пользователь (эмулировать нажатие клавиш мыши).

[Удаленный сервер]<===a===>[Мы]<===b==>[Наш противник]

a) Был выбран сайт, на котором работал на движке GNU Chess, точное elo неизвестно, но в пределах 2300-2500 (возможно больше). То есть это уровень гроссмейстера. Сайту отправляется GET запрос, в котором мы указываем ход противника, тот выдает ответный ход.
b) Ответный ход с удаленного сервера сопоставляется с координатами доски, после которого происходит эмуляция перемещение фигуры мышью (одним-двумя кликами);
План был обозначен, в качестве среды был взят старый добрый Delphi 7. Что из этого получилось можно посмотреть ниже.

Читать полностью »