hi colin,
honestly, a chess program is something very very [...] very ambitious to start with. maybe 4-in-a-row is a - also very difficult - better start?
well, you decide :-)
here are my two cents:
game programming needs an algorithm which builds a tree of all possible moves. each node of the tree (say: position) is then subclassed by each possible move from this position, and so on. pure capacity and computing power determines the depth of the tree. each end-node of the tree is then judged by the computer, and it simply tries to reach this position by following the path down to the best node.
(simplified description ;-)
the problem is that the tree gets very very big. the science of programming a chess-engine is to determine - as early as possible - which branches of the tree are not worth following. if you are not looking for a dissertation, i'd say that's beyond the scope of us "normal" coders. (the other challenging part is telling a good position from a bad one)
anyhow, my point is the following - it's the wrong approach to determine the level of computer play by it's computing time.
instead,
you should specify how deep it calculates the game tree. later, when everything works (more or less), you can still cut calculation time down, but as a start, you should restrict the tree, not the runnign time of a thread :-)
btw: why am i recommending 4 in a row? because all pieces are equal (no pawns, kings, queens,...), the number of possible moves per situation is limited (7, german rules), and so is the number of movements per game (42, german rules). but: the strategy itself is exactly the same, start from a certain position, compute all moves, find the best and go ahead :-)
anyhow,
good luck & lots of fun,
jan