Usuario:Lmorillas/modulo programacion/python/juego tres en raya/ayudas 3 raya

Un diagrama
http://inventwithpython.com/images/10-1.png

¿Cómo representamos las posiciones del tablero?
http://inventwithpython.com/images/10-2.png

¿Una lista de 10 elementos, despreciando el primero (índice 0)?

Ejemplo: un estado del tablero y su representación
---  X |   | ---    | X | ---  O | O | O ---

tablero = [' ', 'O', 'O', 'O', ' ', 'X', ' ', 'X', ' ', ' ']
 * 1) la posición 0 no se usa para facilitar el proceso

¿Cómo sé si una casilla está libre?
No tiene ni O, ni X en esa posición. Los movimientos legales son siempre a casillas libres.

¿Cómo sé que un jugador ha ganado?
Sabemos cuáles son las posiciones ganadoras. Las podemos guardar en una lista. Si tenemos en cuenta la representación de datos anterior:

¿Cuándo hay tablas?
No ha ganado ningún jugador y no quedan casillas libres: ' ' not in tablero

Enseñando a jugar al ordenador ...
El ordenador tiene que:
 * Ganar, si puede hacer 3 en raya
 * Evitar que el contrincante haga 3 en raya
 * Elegir la mejor posición: centro, esquinas y resto