Implement a TicTacToe game with a clean architecture that supports user moves, win detection, and game reset.