Estas empezando la casa por el techo, primero haces la lógica del juego y luego una interfaz bonita.
Primero empiezas con fuertes cimientos (Una buena lógica del juego, puedes poner instrucciones grandes o muy generales). Ejemplo:
Código:
Mientras haya movimientos disponibles:
Si alguien gano:
Imprimir ganador
Salir de mientras
Si no:
Esperar movimiento del jugador (Dependiendo de un turno)
Checar si alguien NO gano:
Imprimir empate
Entonces a partir de esto, empiezas a hacer un listado de funciones:
Movimientos_disponibles, Alguien_gano, etc...
Te sugiero que primero hagas una versión simple, sin interfaz para hacer pruebas.
Si tienes problemas con la función de alguien_gano:
Lo único que tienes que hacer es verificar las filas y columnas.
En general seria: "Si alguna fila o columna contiene solo O's o X's entonces alguien ha ganado"