http://chessprogramming.wikispaces.com/
is where you should start.
My suggestion is to write a program that conform to the UCI standards. This way your program can be used in any of the many GUIs that recognize these standards. Then, your program can play games against all of the hundreds and hundreds of other chess engines.
http://en.wikipedia.org/wiki/Universal_Chess_Interface
http://computerchess.org.uk/ccrl/4040/
Also, this way you don't have to write the GUI part of it. That's already been done for you. You as an author can concentrate on the engine strength itself.
Hi all,
I have recently began playing chess for the first time in many, many, many (actually more like 7) years. I am personally a heavily computer-science oriented person, and the main reason I'm trying chess again (aside from the borderline mathematical beauty its simple rules create) is to create a chess artificial intelligence of my own.
I was wondering if there were any people on chess.com that are knowledgable in this subject and would be interested in helping me. Right now, I've only recently finished making a GUI chess game written in Java, so I've barely even started thinking about the artificial intelligence part yet.
I'd like to start my program with a solid opening book, before having to deal with the middlegame (which would be a major annoyance). I'm not particularly interested in what some one guy thinks is the best possible move in a given situation-- history has shown that the best decisions come from a group of people reaching a conclusion, rather than the opinion of an individual. Perhaps the folks here at chess.com have an opinion on the matter of the "ideal" opening?