Computer Chess

chess4j + SQLite

The last time I wrote anything about chess4j, way back in November, I reported that chess4j was using a small in-memory database of opening moves. The program was reading a library of about 500 games from GM Kasparov, which it would do every time the program initialized. Before each move, chess4j would consult this in-memory […]



chess4j learns some moves from Kasparov

Ok, “learn” is too strong a word. More accurately, chess4j now has a small opening book database populated with a little over 500 Kasparov games. Before doing any thinking on its own, chess4j will consult this database, and if a move is found it will play it. This has the effect of steering the game […]



chess4j 2.0 is released

I’m happy to announce the release of version 2.0 of my chess program, chess4j. This version is a good bit stronger than the previous release, though there is still much to do. The focus of this release has been to improve the efficiency of the search. These improvements include: Improved Move Ordering Previous PV move […]



chess4j gets a little smarter

Over the holidays I managed to find a little time to do some work on chess4j. It felt really good to dust the codebase off and make some improvements that have had real impact on playing strength. Up to this point, I have not really focused on playing strength at all. The official release number […]



chess4j 1.2 is released!

chess4j 1.2 is in the wild. There hasn’t been any new development lately in terms of new features or playing strength, but I have put some effort into improving code quality using the excellent Sonar Source tools. Minimal cyclomatic complexity. No circular package dependencies. No critical or major violations. Over 80% test coverage and over […]



chess4j 1.0 is released!

chess4j is a Java based chess program I’ve been developing in my copious spare time. It’s finally reached a level that I’m comfortable doing an official release. It is not a strong engine; in fact I’ve done almost nothing to increase its playing strength. However, it has played hundreds if not thousands of test games […]



It’s About Time

I’ve been working on “the big rewrite” of my C chess engine lately. I mentioned some time back that it was just barely capable of playing a legal game of chess. At the time it did a depth first search using a depth of 4. Since then, I’ve added a timing algorithm. The idea is […]



A Groovy way to handle user input

Several weeks ago I wrote about Prophet, my C/C++ chess program. I described in that post the approach I was using in the ParseXBoard( ) method to map user input to a “handler function” using a table of function pointers. As it turns out, I actually have TWO chess programs under active development. The other […]



Shall we play a game?

How about Global Thermonuclear war? Wouldn’t you prefer a nice game of chess? (Wargames, 1983) I’m very pleased to announce that a project I’ve been working on off and on for the last year is finally coming to life. I’m working on a new chess engine — a complete rewrite of “Prophet.” Prophet is a […]