Developed while learning Java, this simple implementation of the classic Tic-Tac-Toe game has a little nice feature: you can decide at any turn, and for both players, if they are computer-controlled or not. So, you can do some "bad" moves for a player manually, and then enable the AI and see how it behaves in game states that, if controlling the full game, it wouldn't have reached.
The AI is based on the minimax algorithm.
Ready-to play .JAR and source code are available for download: