I'll run through some stuff for you. Basically what I need to point out is that Tic-Tac-Toe as a game really only has a single engine. I'll run through some basic concepts to define what a game engine is and how it works:
Fact: A game engine consists of a game state, methods to change that game state, and methods to report that game state.
Fact: A game engine should be independent of user input methods, display, and any other connection that doesn't have to do with a game state or the methods needed to change the state.
Fact: A game engine has a lifecycle that consists of setup, iteration, and conclusion.
So think of a tic-tac-toe engine (make it a class) that is independent of the UI (have the UI interact with the engine by using it to make moves and then displaying the results of those moves rather than allowing the UI to actually take part in storing the game state) and the user input (don't have the buttons pressed set game state directly, instead have them call methods on the engine that change game state in a protected manner).
So a tic-tac-toe game might have the following game engine layout:
Setup
Clear Game State
Select Piece that Moves First (X or O)
Iteration
If GameOver Throw Exception
Make Move by turning a click in the UI into a game engine method MakeMove(cellX, cellY, PiecesEnumeration.O)
If cellX or cellY is taken or PiecesEnumeration doesn't mesh with the current move piece Throw Exception
Else SetStateOfBoard
CheckForWinConditions
If WinConditions SetEndGameState Goto Conclusion
Else CheckForDrawConditions
SetEndGameState Goto Conclusion
Conclusion
ServeResults
So out of the things you wanted to add to your game. Most of them were UI items, not game engine items, but you don't actually have a game engine yet. Lets finalize a game engine, something cool that works well that can be played from a command line, a winforms UI, or a web page with relative ease. Thats the key to an awesome game design.
So what you should send me is:
a) A single class that I can compile into a library
b) I can link that library into a new application I'm writing and add the ability to play tic-tac-toe