Hola.
Lo que estás buscando se llama árbol de decisión. En particular, el conocido como árbol minimax.
Búscalo en google y verás bastantes ejemplos de cómo implementarlo.
Los nodos del árbol son los tableros, en la raiz está el tablero actual. Cada jugada posible es una ramificación que generará otro nodo y así sucesivamente.Hay que considerar que cada nivel del árbol es 'media jugada', o sea, que es el turno de un jugador y en el árbol hay que reflejar las jugadas de dos jugadores (es como pensar en el movimiento que hará tu contrario). A partir de ahí, se le da una puntuación a cada tablero, considerando que tú jugarás la mejor de tus opciones y el contrario la mejor de las suyas (si el no lo hace lo mejor posible, peor para él) y se elige el mejor camino con todas las jugadas que se hayan calculado.
Por ejemplo, en las 3 en raya podrías programar todo el arbol completo, por lo que tu juego nunca podría perder, mientras que en ajedrez o en go, el cálculo es muy complejo y no puede hacerse sólo con un árbol.
Hay muchos libros de IA que hablan de este algoritmo, intenta conseguir alguno.
Ya nos contarás.
Suerte.