Уточню на всякий случай, что у каждого игрока шарики своего цвета.
Ну ок, давай подумаем вместе про оценочную функцию.
1. В случаях, когда я уже выиграл, f = +∞
2. Когда проиграл - f = -∞
3. Если у меня три в ряд и есть куда поставить четвертую, это очень хорошо
4. Если у меня три в ряд и с обоих концов можно поставить четвертую, я выиграю следующим ходом, и f = +∞
4. За каждую двойку фишек моего цвета, стоящих рядом, которые можно продолжить до четверки, увеличиваем значение функции.
Эти вещи - очевидны, и следуют прямо из правил. Если хочешь, попробуй дополнить их своими догадками, потом сможешь сравнить, насколько они оказались полезными. Хотя, даже такой примитивный набор оценок уже даст очень сильный ИИ для такой игры (с таким небольшим деревом).
Вообще, как для первой игры с ИИ, это довольной сложный вариант; если ты вообще никогда не писал рекурсивные переборы, лучше для начала хотя бы напиши вывод всех перестановок первых n натуральных чисел.
Хотя можно и без этого - тебе решать.
Итак, пробуй. Для начала напиши функцию, которая получает на вход позицию, и возвращает значение f.