Вот, когда-то писал шашки...
http://mystic2000.newmail.ru/Draught.zip
Там был такой алгоритм
Есть буфер позиций, структура вроде стека. Далее
Рекурсивная функция оценки позиции
1. Буфер переполнен. Если да, то возвращаем оценку позиции по принципу у кого больше: простая 2, дамка 7.
2. Дописываем в буффер все возможные хода.
3. Если ходов нет, то возвращаем позиция проиграна (или выигрына, в зависимости от того, кто ходит)
4. Анализируем каждый ход по этой же процедуре.
5. Оценкой позиции будет ход с наименьшей (ходит противник) либо наибольшей (ходим мы) оценкой.
6. Очищаем буфрер.