Шахматный бот

в 6:59, , рубрики: делфи, Песочница, шахматы, метки: , ,

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

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

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

image
Рисунок 1 – Настройка позиции шахматной доски

image
Рисунок 2 — Управление процессом игры

Автор: ns5d

Источник

Поделиться

* - обязательные к заполнению поля