Sunday, March 28, 2010

jCheckers!

After a rainy Sunday afternoon in front of my PC, jCheckers is now available! For some reason, I had to rewrite the entire GUI because NetBeans wasn't creating a proper distribution output for my jCheckers project. At least I also learned how to write callback functions in Java (with Interfaces), and implemented one for communication between the JCheckerBoardPanel and the main window. I should also implement one for the communication between the checkers engine and the JCheckerBoardPanel - but since my Java checkers engine is shared between Android and the full Java program, I was a bit reluctant to touch it. In fact, the engine isn't properly shared between the two because of some differences between Android and standard Java. My programmer friends tell me I should use dependency injection, but that will have to wait!
In the meantime, you can enjoy jCheckers on Linux and Mac, where CheckerBoard isn't available. jCheckers has a powerful Java checkers engine, multiple levels of play, PDN support, and unlimited takeback through the game.
Since I don't own either Mac or Linux computers, I'd be glad to get feedback on whether it runs on these systems as it should.

3 comments:

Nelson Castillo said...

I tested it in Linux and it runs. But I didn't test it for a long time.

mvandewettering said...

I sparred jCheckers for three games against my own checkers program milhouse, with a result of three draws. Studying the games using Cake, it appears that both programs had opportunities to win that they couldn't quite search deep enough to find, but that Cake could easily get and exploit. I'm still studying the last game, trying to isolate a losing move by milhouse, followed by an inability to capitalize by jCheckers.

Martin Fierz said...

Hola Nelson!

thanks for testing - the quick test is surely more than enough, I'm happy that it runs on Linux! Incidentally, I had some trouble getting it working on my office PC - which doesn't recognize .jar files and I didn't manage to make them double-click-executable...

Mark, thanks for testing too! jCheckers is only very loosely based on Cake, it has no opening book, no endgame databases, and a very much simpler evaluation function. But it is of course much better than simple checkers, and I think it should be quite a credible checkers engine. I actually have a better version of the Java checkers engine running in my Checkers Tutor for Android; unfortunately, my Java programming skills were or perhaps still are not good enough to disentangle the engine completely from the OS-dependency. But I'll try to solve this so I only have one code base to work on...