If you’ve ever played a computer at a game of chess, go, checkers, or whatever, you’ve probably wondered just what the computer was thinking. Sure you know intellectually that it can consider many times the number of moves you can in the same amount of time. But what does it dismiss and what does it look at further? How does it decide what a good move is? Of course, it depends on the system and the game and is rather complex. I have only played around briefly with trying to program such a thing. I wrote a program in C++ to play checkers that looked three moves ahead (via depth-first search) and judged the merits of a move based on the points left on the board at the end. That was back when I was first learning C++, so the code was very sloppy and I didn’t really have a clue what I was doing.
But on one of my random journeys through the interwebs, I stumbled upon Thinking Machine 4. It’s an online game of chess versus a computer opponent. The board is very modern looking, with polygons as pieces. Once you make a move, lines begin springing up all over the board, indicating moves the computer is considering. Depending on how hard it has to think (that is, how many possibilities it must consider), lines are thin or thick as new ones spring up. When the computer is not thinking, the board has a cool little optical illsuion to make you nuts.



[...] came across this post – Thinking Machines – and thought it was worth sharing. I hope you find it interesting too and take the time to read [...]
That’s very cool! It stirs my old lust to program a tenjiku shogi playing program… :) When did you write your C++ checkers program?
I think it was back in 2001. I had already been programming in C, but after picking up C++ I wanted to try something with classes. I probably could implement the same thing in python now in an hour and it would look way beyond 3 moves. :P But of course, checkers is solved now, so why bother (except as a learning experience). Shogi is far more interesting.
I think the new poker bots are an exciting new wave of thinking machines. See U of Alberta’s Computer Poker Research Group (I think they’re the same group who solved checkers). The twist with poker is that it is a game of imperfect information with a slice of luck added.