My own version of Tic-Tac-Toe AI is
here; it actually learns by playing games, making a random move if it doesn't yet have a "preference". Admittedly, it learns slowly, but the Defensive player is unbeatable after about 60000 games against a random opponent.
This is obviously not incredibly applicable to more advanced games like chess or even connect-four. It has no means of recognizing similar situations or common patterns, hence the search space gets huge quickly....
Thanks for posting this node... now I feel like I should go back and improve that code. ;)