mi recomendación... estructura el tablero como una matriz 3x3 de enteros por ejemplo (no valen booleanos xq necesitas 3 estados: vacía, jugador1 y jugador2). Si es sólo para dos jugadores humanos, no debería surgirte ninguna complicación... simplemente indica el turno del jugador q es y cambia el valor de la coordenada que te indique al q prefieras (1 para jugador 1, 2 para el 2º y 0 para vacío podría ser una opcion). Luego haz busquedas sobre la matriz (sólo te hacen falta las que impliquen esa coordenada) para comprobar si hay 3 casillas con el mismo estado. Si es así, finalizas el juego indicando el jugador ganador y ya está... no hay complicación.
Si necesitas jugar contra la mákina es un poco más complicado, pero no mucho más... Simplemente que la máquina esté a lo suyo intentando hacer sus 3 en raya, y en el momento que a un jugador le falte una casilla para hacer su 3 en raya, pues q la obstaculice con una propia... Es una inteligencia artificial pobre, pero muy intuitiva, sencilla y fácil de programar... Si necesitas algo más sofisticado, todo es ponerse...
Además si te vale en modo texto, más fácil aun... simplemente borra la pantalla tras cada jugada y dibuja el tablero de nuevo entero... solo se trata de sacar la matriz por pantalla. Dos bucles "for" anidados para sacar fila a fila, y dentro de cada fila elemento a elemento e bastan...
Si necesitas más pistas... sólo dilo
Pero eso sí, pon algo de tu parte. Di que tienes pensado, donde tienes las dudas, q problemas conceptuales tienes... en fin, q tu tb te intereses por ello.
Saludos de Phoenix!!