www.adam16mr.org/powerout97.html
Four 97
this was my first attempt prior to doing pulsar at writing a game that used what is known as recursion. A function calling itself. Unlike a chess program that searches as deep as it can i think, that i limited four to only searching about 4 moves deep. Most of its strenght is pattern recognition.
Apparently I didnt design a way to quit so you have to eathier play moves tell there its drawn, win or lose. You can let it beat you to get out. Once its over hit return and it will quit. Luckily it does its moves in about a second. So you can wrap it up preety quick.
This game like Powerout97 is written in visual basic for dos but still appears to work at least in my testing in windows xp.
To download go to www.adam16mr.org/WFOUR97.zip.
As of May 13 08, Four ported to Windows
four is now ported to windows using visual basic.net which runs easier on modern computer. I wrote a modern engine and ported the old engine. there are radio buttons to choose what engine you wnat to use. you can change engine from move to move.
http://www.adam16mr.org/beta4-08-3.zip
older version www.adam16mr.org/four08-beta-2.zip.
Since the engine was written in visual basic script it proved not to difficult to move it from dos to visual basic.net.
Nov 2 08, c++ class for 'finger fourbot'. engine on icc
As of october 2008, i have implemented a connect 4 playing system on icc with FourBot, playing connect 4 games against icc members. The program is much stronger than the visual basic work, with a better eval, killer moves, and hashing, using alpha beta of course. I took the complete class that is the engine and open sourced it, http://www.adam16mr.org/connectfourclass.h. But i dont provide any kind of interface. Its just the engine code. You'll have to send your moves to the function in this class, void makemove(int x), and modify it to return a value or give it a method to send a move. The idea is you can create objects of the engine class and store them on an array or vector and as moves come in, in games, you just send the move to the right engine object, i.e. the object associated with a certain array index, and it will make the next move for you in that game.