Я пришел к другому подходу:
1. для каждой фигуры противника создать отношение с каждой клеткой поля и выявить возможность удара
2. для каждой своей фигуры создать отношение с каждой клеткой поля и определить возможные ходы и возможные атаки
3. рассчитать стоимость хода для каждого доступного хода, ЕСЛИ ПОД АТАКОЙ = МИНУС ЦЕНА ХОДЯЩЕЙ, ЕСЛИ АТАКА = ПЛЮС ЦЕНА АТАКУЕМОЙ, ПЛЮС СУММА ВСЕХ FLOOR(ФИГУРЫ ПОД АТАКОЙ ПОСЛЕ ХОДА)
4. взять максимальную стоимость за 100% и вычислить удельную пользу хода
5. в зависимости от уровня сложности выбрать ограничение, или просто взять ход 100%, либо если ходов 100% несколько то взять случайный