Для игры с таким небольшим количеством возможных состояний, как Крестики-нолики, вполне возможно просто построить дерево всех возможных состояний игры, и ваш ИИ будет брать только ветви, которые не заканчиваются потерей.
Кроме того, я думаю, что то, что вы ищете, называется минимакс , и здесь есть статья , которая объясняет ее изменение в контексте Tic-Tac-Toe .