В общем случае такие задачи решаются перебором. Для этого строится дерево возможных состояний доски начиная с текущего состояния. Потомки текущего состояния в этом дереве - это результаты всех возможных ходов очередного игрока. Это сильно ветвящееся дерево, а значит буквально через несколько ходов количество элементов в нём станет слишком большим, чтобы перебирать и оценивать их по очереди. Тут и речи не жёт о спуске по дереву до финальных (листовых) состояний, по которым можно однозначно удить о выигрыше.
Очевидно, что дерево можно усекать и не рассматривать заведомо проигрышные или слишком затратные ходы, можно сравнивать состояния с определёнными предварительно просчитанными ситуациями. Чем их больше в БД, тем быстрее будет работать ваш алгоритм.
В любом случае более менее эффективно играть в шахматы компьютеры научились только недавно и для этого нужны очень мощные компьютеры, большая БД и нетривиальные алгоритмы распознавания типовых паттернов на доске.
Нельзя просто так взять и переделать готовый хороший шахматный алгоритм под себя. Вернее можно, но сложно.
Зато попробовать написать что-то своё - это хорошее упражнение для мозгов.
Попробуйте реализовать класс для описания состояния доски (включает положения фигур и цвет хода). Опишите класс для дерева таких состояний. В узле дерева будет состояние доски и ссылки на возможные состояния.
Для состояния можно давать примерную оценку его выигрышности. В самом простом случае - это взвесить фигуры силе и просуммировать очки. В более сложном - это понимать под боем фигура или нет, заблокирована ли и т.д.
На всякий случай скажу, что в шахматы я играть не умею, знаю лишь правила и могу играть только на дилетантском уровне, так что могу нести чушь. Просто рассказываю ка кподходил бы к решению здачи наивно с нуля. При серьёзном решении этой задачи наука давно перешагнула далеко за порог сложности для самого талантливого новичка.