Hola, ¿cómo están?

Estoy necesitando desarrollar el juego de “ta te ti” o “tres en raya” para Java (sin interfaz gráfica) en una sola clase utilizando herramientas como:

- Funciones/métodos de carácter “public” (ni private ni void)
- Estructuras repetitivas
- Condicionales
- Matrices
- Arreglos muy simples para predefinir la matriz del tablero 3x3
- Constantes.

Juego:

- El usuario (“X”) debe jugar contra la computadora (“O”) e intentar vencerlo.
- Las celdas vacías del tablero deben estar inicializadas con el carácter “_”
- Con una función/método (public) se debe verificar y mostrar en cada movimiento el estado actual del tablero. (Celdas ya ocupadas con “X” y “O” y celdas vacías con “_”)
- El juego debe mostrar de quien es el turno en cada movimiento, primero tiene que jugar el usuario con la “X” y luego a la computadora con la “O” y así sucesivamente.
- El usuario y la computadora deben ingresar las “X” y “O” en las coordenadas que va pidiendo el juego (0,0 – 1,1, etc.). Se deben realizar validaciones para verificar el ingreso de datos correctos, no se puede permitir ingresar cualquier valor.
- Verificar si la ceda se encuentra vacía para dar el movimiento como válido. Muy importante.
- La computadora deberá jugar con un número aleatorio que representará la fila y la columna.
- Se debe verificar después de cada jugada si alguno de los jugadores ha ganado. Si al final del juego todas las celdas están ocupadas y no gana ninguno se debe mostrar que ha sido un empate.
- Al final del juego se debe consultar al usuario y la computadora si quieren volver a jugar, si dicen que “si”, hay que reiniciar el juego, si dicen que “no”, se termina.

Muchas gracias.