Cita: A mí se me ha ocurrido lo siguiente (sólo que no sé como plasmarlo en el código):
1º Guardar los lugares donde cada jugador mete un punto, algo así como los datos de las diferentes partidas (con un ArrayList<String>).
2º Ver el tablero como una matriz.
No me he leído las normas del juego, pero partiendo de que es un tablero y que lo quieres tratar como una matriz, como Java te permite usar matrices (array bidimensional), ¿para qué el List entonces?. Un List es una lista de tamaño dinámico, que no es tu caso.
Habría que ver si por las especificaciones conviene usar List, pero lo dudo.
Ojo, el segundo List sí tiene sentido, un List de matrices.
Cita: Me gustaría saber que os parece mi razonamiento y la forma en la que quedaría el código en java del juego.
Más o menos está bien, te falta la parte que comprueba que un nuevo patrón no es repetido, y la parte que decide si se gana o empata.
El código tendrás que hacerlo tú o buscar si alguien ha hecho ese juego y ha compartido el código.