Posts

Showing posts with the label checkers

Explanation of Levels

Image
Since I just got some questions on the different levels in my Android games, I hope the following posting on this topic is helpful. To change the level in either Chess, Checkers, or Reversi for Android, first press the Menu button on your phone, then pick the Level option, which gives you something that looks like the following screenshot. Then select any of these levels. Here, Free Play means that the game engine will never compute a reply. Instead, the phone can be used as a "magnetic board" to study games or play a game up to a position for further play with the engine. In Random , the engine will instantaneously pick a valid next move at random. Pick this level if you like to win! The next Level 1 through Level 5 select different normal playing levels, increasing in both strength as well as time taken by the engine to compute its next move. Finally, Chess for Android also has an Auto Play option where the engine plays against itself. After selecting this level, eith

More Updates

Image
I just released new versions of Checkers and Reversi for Android that improve the text size on larger screens. The reversi application now also uses a randomized opening for variety of play (see below).

Checkers for Android Update

Image
I just released v1.2.2 of Checkers for Android with the following improvements: + improved endgame play + randomized opening for variety + announces win/loss The latter feature is illustrated in the screenshot below. Please let me know if you encounter any issues with the new features.

Miscellaneous Updates

Just a few unrelated updates. First, the Android App Review Source website posted a brief online interview with me on developing Android applications. Also, version 2.01 of BikJump ended at second place in the CCC 17th Amateur Series (Division 8) , which opens the possibility of promotion to a higher division. Many thanks to Graham Banks for running this tournament! Finally, Martin Fierz published Checkers Tutor for Android , a strong checkers program for Android.

New Game and Undo

I just posted version 2.1.1 of Chess, Checkers, and Reversi for Android at the Android Market that allows starting a new game or undoing the last played human move while the computer is thinking. In the older versions, this could only happen during the human player's turn. The latest releases remove that unnecessary restriction. As before, keep in mind that each undo takes back only one half-move (ply). This means that each undo effectively switches the side-to-move. Either use "Switch Side" or make your move on the board to start the engine again.

Android Updates

Image
I just posted v2.0 of Chess, Checkers, and Reversi for Android at the Android Market with the following improvements: => Small, normal, and large screen size support. => Full screen board layout. => On screen buttons moved to menu. => Unified trackball cursor. => More levels of strength. In addition, chess has been improved with: => Choice of two chess piece sets. => Rotating board.

Are You Really Sure?

Image
Several users requested a confirmation dialog when starting a new game in Chess for Android to avoid resetting a game in progress by accidentally hitting the new game button. Therefore, I just posted v1.5.5 at the Android Market that adds this feature, illustrated below. Although not directly requested, I have added this feature to both Checkers and Reversi for Android as well.

Android Updates: Save on Exit

Image
I just posted version 1.5 of Chess, Checkers, and Reversi for Android at the Android Market , all with the much requested "save on exit" feature. If a user exits a game in progress, the game is automatically saved and later restored when the application is restarted. Even if the interrupt happened while the engine was thinking about its move, the game will restart in that state (albeit taking the full allocated time again). Apologies to all users who have been requesting this feature for a while, I just needed to find some time for it.

A New Checkers Engine: BikMove

I ported the Java source code of the engine in Checkers for Android into C++ and implemented the parts required to form a plug-in engine for Martin Fierz' CheckerBoard application. The result is BikMove (with an obvious wink to my UCI chess engine BikJump). I also added the ability to query checkers endgame databases based on Martin Fierz' probing code (used with his kind permission). The main features of BikMove are listed below: Checkerboard compliant checkers engine. Iterative deepening, alpha-beta pruning. Queries endgame databases during search. The engine needs some more work to become competitive with others checkers engines, but it already plays what looks to me like decent checkers. Give it a try if you are interested!

Checkers Move Generation

I was able to make a small improvement in the checkers move generator (written in Java for the Android SDK). The following table shows run times of several perft depths before and after optimization when run on the emulator (which should mimic actual run times on the phone quite well). DEPTH #LEAF NODES ORIGINAL OPTIMIZED TIME TIME ==================================== 7 179740 2.9s 1.9s 8 845931 14.2s 9.7s 9 3963680 66.3s 45.6s 10 18391564 294.6s 208.7s P.S. Runtimes for a C++ checkers move generator on a 2.2 GHz Core 2 Duo are given at my checkers page .

Perft for Checkers

Martin Fierz kindly extended his engine Cake with a perft feature. Luckily the numbers reported by Cake match the numbers reported by Checkers for Android exactly. Below the numbers from the start position are shown, hopefully useful data for aspirant checkers programmers. DEPTH #LEAF NODES ======================= 1 7 2 49 3 302 4 1469 5 7361 6 36768 7 179740 8 845931 9 3963680 10 18391564 11 85242128 12 388623673

CheckerBoard

If you are looking for a checkers program for Windows, I can highly recommend Martin Fierz ' CheckerBoard , consisting of a checkers GUI that features game databases, opening books, endgame databases, and various checkers engines (including the capability to plug in your own as DLL). I have used his engine Cake as "sparring partner" to test the correctness and strength of Checkers for Android. Needless to say, Cake won, but the games at least assured me that my Android version plays correct checkers. Martin also kindly responded to my request for adding a perft feature to Cake, which will enable verifying the correctness of my move generator against his.

More Android Updates

Image
Two minor updates at the Android Market . Version 1.3.1 of Checkers for Android has a slightly improved search and evaluation in the checkers engine. Some users complain the engine plays too strong, others say it is too weak. Needless to say I enjoy the challenge of making a strong engine more. I also added an "undo" feature for this game. Version 1.3 of Chess for Android now also has the option to disable highlighting all valid moves once a piece has been selected for more experienced chess players. I also modified the on screen button layout.

Trackball Support

Image
I just posted version 1.2.1 of Chess, Checkers, and Reversi for Android at the Android Market with trackball support. A small circle denotes the trackball cursor, as illustrated in the screen shot below. Hopefully this will make the input easier. Many thanks to Chris Bueno for quickly testing the applications shortly after posting!

Optional Captures

Image
To my great surprise, quite a few users complained that captures should not be mandatory in the just released Checkers for Android, even though the official straight checkers rules clearly state that jumps are forced (something that in my opinion adds to the beauty of the game). Nevertheless, since this seems a popular feature request, I just posted an update at the Android Market in which the user can chose between mandatory or optional captures prior to the game. The latter option does not follow the so-called "huffing" rule, where the piece that should have performed the capture is forfeited. Instead, the game simply continues, which may lead to some interesting draw situations.

Checkers for Android

Image
The number of downloads of Chess and Reversi for Android exceeded all my expectations, and I received a lot of nice feedback. The most popular request was for a checkers application. So I gave it a try and implemented Checkers for Android which, like Reversi and Chess for Android, is available for free at the Android Market . Some screen shots are shown below. Since captures in checkers can consist of several jumps, I tried a new input mechanism where touching a square shows all valid moves that involve that square. By clicking on those squares (making orange colors red) eventually a move is uniquely defined. Also, the last played move is highlighted on the board (a feature requested for Chess and Reversi as well). The checkers engine plays at various levels (including random).