Monday, December 05, 2005
CheckerBoard 1.64!
Sunday, December 04, 2005
CheckerBoard 1.64 beta 2
Saturday, December 03, 2005
Getting organized!?
Saturday, November 26, 2005
CheckerBoard 1.64 beta
To install CB 1.64, download and execute the CB_setup file. There are several ways to get it working properly:
-> Install CB 1.64 over your old CB directory: In this case, CB 1.64 will not recognize checkers engines which are not in the "engines" directory. You must manually copy these engines (all the *.dll files and associated files) into the engines folder.
-> Install CB 1.64 side-by-side with your old CB: choose a new directory such as C:\program files\CheckerBoard164 for your new installation. The two versions should be able to coexist on your system.
-> Uninstall the previous version of CB: First, remove your old version of CB. Make sure to keep games that you have saved! Re-install the new version over it.
Tuesday, November 22, 2005
GUI checkers 1.05
Jon also wrote a nice tutorial on bitboards in checkers programs, which gives you an idea on how to program a blazingly fast checkers program.
PS: of course, speed is not everything. There are reasons why Cake is so much slower than GUI, and it's not only that Jon is a more accomplished programmer. Cake has larger endgame databases which take time to probe, and it also has a more complex evaluation function. As you know from our human checkers experience, it is not necessary to examine millions of positions to find a good move - it is more important to examine the right positions, and to evaluate them correctly. Cake Manchester is better than GUI checkers despite searching less positions per second.
Monday, November 21, 2005
CheckerBoard 1.64
Monday, October 31, 2005
Open Office 2.0
While I'm at it: If you're looking for a decent program to create installations, try Inno Setup.
On my computers at home, I also use free antivirus software: Anti-Vir personal edition on my desktop computer and AVG free edition on the laptop. I haven't made up my mind as to which one is better.
When it comes to graphics, I use XnView.
I edit my website with Arachnophilia. But I'm not 100% satisfied with it - it's very no-frills, and you need to know your HTML to use it.
How about you? What free software works well for you? I'm only interested in productive software like the above, not in games like CheckerBoard :-)
If you know of a great free program (no NagWare or trial versions!), please add a comment!
Monday, October 24, 2005
CheckerBoard @ Wikipedia!
Sunday, October 23, 2005
ISCA world championship games
Thursday, October 20, 2005
What's the fastest loss in suicide checkers?
Sunday, October 16, 2005
ICSA world championship
[Event "3rd ISCA World Championship Match"]
[Date "2005-09-30"]
[Black "George Miller"]
[White "Yuri Sorkin"]
[Result "1-0"]
1. 12-16 21-17 2. 9-13 24-20 3. 8-12 25-21 4. 16-19 {already a loser! 5-9 instead is probably a draw} 23x16 5. 12x19
White to move and win!
Tuesday, September 20, 2005
Why a chess player programmed checkers
Thursday, September 15, 2005
2 million moves!
Tuesday, September 13, 2005
KestoG 1.1
Monday, September 12, 2005
KingsRow 1.15a
Saturday, August 27, 2005
A russian checkers engine for CheckerBoard
New pieces for CheckerBoard available for download!
Wednesday, August 10, 2005
New pieces for CheckerBoard
Tuesday, August 09, 2005
The shuttle has landed!
All of this has nothing at all to do with checkers, and I apologize for the digression. Except, perhaps, that my early fascination with space technology also lead to a fascination with computers - and that lead to CheckerBoard, many years later!
Monday, August 08, 2005
4 in a row 3.0
Friday, July 22, 2005
Ed Gilbert finishes the 10-piece endgame database!
Congratulations, Ed!
Saturday, July 16, 2005
Translation request
Saturday, July 02, 2005
GUI checkers 1.00
Saturday, June 25, 2005
Aerosols instead of checkers
Because I'm working more than usual, I had no time lately for checkers programming. Two projects are ongoing, and I don't need to do anything about them: the book generators for regular checkers and for suicide checkers are both churning away on their respective computers. The generator for regular checkers is filling in the gaps in the newly merged huge opening book, a process which takes a lot of time. I guess that I'll be able to release the resulting book in about two months. I restarted the suicide checkers generator a few weeks ago, since Suicidal Cake now also has access to the 7-piece endgame database. After analyzing 46'000 positions, it still thinks that the game is a draw.
In 10 days, my holiday season starts, and hopefully I will be able to get back to cleaning up CheckerBoard's source code!
Sunday, May 29, 2005
The 7-piece suicide checkers database
Sunday, May 22, 2005
More old code
Saturday, May 21, 2005
The new book, finally
- mailplay:
+0 -4 = 20 - lost:
+16 -18 =2 - normal:
+4 -13 =271
In fact, this is a worse result than I got at 74'000 moves; however this is most likely just because of KingsRow's random opening choice. With the original book, the result is
- mailplay:
+0 -7 =17 - lost:
+8 -18 =10 - normal:
+4 -15 =269
which is clearly worse, although the improvements are mainly in mailplay+lost openings. This is mostly because of the new book generator which looks at unbalanced ballots deeper than the old book generator.
I also wrote a book merge tool with which I have replaced the old database entries in the opening database with their new counterparts. Since quite a lot of play has changed in the opening stages, it will now take a long time for the book generator to expand these new lines to the same level as the old lines, so don't expect a new big book any time soon.
Wednesday, May 18, 2005
Innumeracy
I am constantly amazed at how little the general public understands about the basics of physics, or science as a whole. Our society is dominated more and more by ever-improving technology, but nobody understands it. You can claim ridiculous stuff - like that an antenna is dangerous within a certain radius, but not any more if you take one step further away from it, and people don't understand that this kind of reasoning is hogwash. If I had tried to explain to her that there was such a thing as ionizing and non-ionizing radiation, and what the difference is in terms of health hazards, I would have failed completely (If you really want to know about health issues and mobile phones, see the FAQ of John E. Moulder). This phenomenon I just observed is called innumeracy and is the much-overlooked but much more common cousin of illiteracy. I don't know if there is also such an in/il-term for not knowing any science. If there was, it would explain why people hold magnets in their hands for hours in the belief that this will cure them from some kind of disease; and also people would stop asking for proofs that something is safe. You can only prove that something (mobile phones, genetically engineered food, smoking etc) is not safe, never that it is safe.
You will ask: what has all of this got to do with checkers programming? It's quite simple: programming is sometimes called computer science, and when you write a checkers program and want to make it better, you have to make use of scientific methods. You need to devise methods to test your program, so that you can measure progress. You need to apply changes and either reject them or accept them on the basis of your test method. If you don't have the tools to test your program, and if you don't regularly test your changes, your program will not improve. I guess my neighbour will never write a good checkers program!
Sunday, May 15, 2005
GUI checkers 0.99
Tuesday, May 10, 2005
Nerd!
Sunday, May 08, 2005
The Big Ball of Mud
Another book update
- mailplay:
+1 =19 -4 - lost:
+14 =4 -18 - normal:
+4 =274 -10
Wednesday, May 04, 2005
Old Code
Sunday, May 01, 2005
CheckerBoard 1.63
Friday, April 29, 2005
Chess, not Checkers
I'm off to a chess tournament which will last for 9 days. However, the title of the post is misleading, I plan to fix two bugs and add a couple of features to CheckerBoard when I'm not playing chess! I also want to write a book merge tool to replace the old values in the opening database with the newly calculated ones. I hope I'll find the time for all the things I want to do...
In the meantime, I have new results from the new book, which was at 46'000 moves when I last tested it:
- mailplay:
+1 = 18 -5 - lost:
+14 = 4 -18 - normal:
+3 = 271 -14
That's hardly better than at 20'000 moves, although there is some randomness to these matches, because KingsRow chooses among equal moves at random.
Friday, April 22, 2005
The need for a book update
The match that wasn't
Tuesday, April 12, 2005
Book update
- 12 mailplay openings (now part of the standard deck):
+0 =17 -7 - 18 lost openings:
+13 =6 -17 - 144 normal openings:
+6 -16 =266
Friday, April 08, 2005
The Cake 7pc database is available for download!
The Cake endgame database is more compact than the Chinook endgame database, and will give you a bit better performance.
Sunday, April 03, 2005
A postscript to exaggerations, part 3
Saturday, April 02, 2005
Cake for Linux with opening book released
Monday, March 28, 2005
More on suicide checkers draws
Friday, March 18, 2005
Drawing tendencies in suicide checkers
[Result "0-1"]
[Setup "1"]
[FEN "W:WK5,K1:BK32."]
1. 1-6 32-28 2. 6-10 28-32 3. 5-9 32-28 4. 9-14 28-32 5. 10-15 32-28 6. 14-18 28-32 7. 15-19 32-28 8. 19-24 28x19 9. 18-23 19x26 0-1
However, if the single king happens to be close enough to the 2 kings, it can sometimes win:
[Result "1-0"]
[Setup "1"]
[FEN "B:WK21,K1:BK18."]
1. 18-22 21-25 2. 22x29 1-6 3. 29-25 6-10 4. 25-22 10-6 5. 22-18 6-2 6. 18-15 2-7 7. 15-11 7x16 1-0
However, all these endings are wins and losses too (This statement is wrong, as George Miller points out in his comment below - there are also drawn positions). Once we get to 2-2 kings though, we start to see some draws; here's an example:
B:WK23,K22:BK11,K8. This position is a draw. And this is where things get really interesting: You can add more or less as much material for the white side to this position without changing the result. Like this: B:WK23,K22,K17:BK11,K8. Draw. Or like this B:WK26,K23,K22,K17:BK11,K8. Still draw - and you could continue! Why is this? If the white kings approach the red kings, the red kings can sacrifice themselves and win. Like this:
[Result "1-0"]
[Setup "1"]
[FEN "B:WK26,K23,K22,K17:BK11,K8"]
1. 8-12 17-14 2. 12-8 26-31 3. 8-12 31-27 4. 12-8 27-24 5. 8-12 22-17 6. 12-8 17-13 7. 8-12 13-9 8. 12-8 9-6 9. 8-12 {the white kings can't go any nearer, else this happens:} 6-2 10. 11-7 2x11 11. 12-16 11x20 1-0
The same is true vice versa. Neither side can make progress, and the game is drawn, despite a clear material imbalance. This means that unlike regular checkers, a large material advantage is sometimes not winning. Here's another example with a king and a man holding the draw:
W:W17,K11,K9,7:BK27,19. Draw.
The implications are rather clear: material is not as important in suicide checkers as in regular checkers, and the game has a drawing tendency because in endgames, often neither side can approach the other without losing instantly.
Wednesday, March 16, 2005
GUI checkers 0.90
Monday, March 14, 2005
Exaggerations, part 3
Reading further on the WCC website, I read the next wild claim: Accelerated database lookup code makes WCC outperform all checkers programs on the market. The WCC databases are much smaller and are accessed three to four times faster than those of all other available checkers programs. Again, there is nothing to back this up of course. I have no idea how fast the database lookup of WCC really is, but vice versa the WCC authors have no idea how fast my database lookup (and that of other programs) is. How can they know they are 3-4 times faster? They can't, their statement is ridiculous. Their database, it is true, is 14.5% smaller than mine, and I don't want to pretend that is not good. It is good! But does it make a significant difference? The answer is no, it doesn't. This can be shown by running engine matches with different database cache sizes for one engine, and the results are not significantly different. Besides, there is something more to be said about endgame databases: A database not only uses RAM for the database itself, but also for some tables it needs. The amount it needs for its tables, the overhead, can be different for different databases. I don't know how much overhead WCC has, and I won't start claiming it has a larger overhead than my database. But any comparison between databases without including the overhead is rather pointless.
Suicide checkers: is it a draw?
Among human players, suicide checkers mostly leads to decisive games, unlike regular checkers where the draw is a very common result. Therefore, Suicidal Cake's verdict may seem surprising, but there are in fact some things about suicide checkers that make it more drawish than one might think at first - I will return to this subject in another post!
Thursday, March 10, 2005
The suicide checkers opening book
[Black ""]
[White ""]
[Result "*"]
1. 11-15 24-19 2. 15x24 28x19 3. 12-16 19x12 *
(By similar logic probably the starting moves 1. 10-14 and 1. 9-14 are probably considered to be very weak or even outright losses.) The reasoning is that red will play 3-7 at the right moment; the right moment being the one where it wins on the spot with a clearance. White can do nothing about red playing 3-7 at some point, and must be extremely careful on every move in order not to lose straightaway. By this logic, red continues with 7-11, immediately setting up the possibility of playing 3-7. A lot of moves now already lose by force, such as 22-17 which allows an immediate clearance:
[Result "1-0"]
1. 11-15 24-19 2. 15x24 28x19 3. 12-16 19x12 4. 7-11 22-17 5. 10-14 17x10 6. 6x15 23-19 7. 15x24 27x20 8. 3-7 {here we go!} 12x3 9. 9-13 3x10 10. 1-6 10x1 11. 13-17 21x14 12. 5-9 14x5 13. 11-16 20x11 14. 4-8 11x4 15. 2-6 1x10 1-0
This brings me back to the question of intermediate goals in suicide checkers: One of them is the establishment of such a clearance set-up; Suicidal Cake recognizes this specific pattern of red men on 3,8 vs a white man on 12, and gives it a big bonus. However, if my opening book is right, then this is not the end of the story: The book says that after 7-11, white must continue 27-24, and will draw. However, the path to the draw is very narrow and the last word may not be spoken - the book is not 100% clear on this line.
Tuesday, March 01, 2005
The suicide checkers endgame database
WWWWWWWWWWDDDDDDDDDDWWWWWWWWWWDDDDDDDDDD....
with W a win, D a draw and L a loss - none of them present in the above database. The compressor now works by storing (10,W), (10,D), (10,W), (10,D) instead. In many databases the runs reach amazing lengths, especially in lopsided databases where most positions are just a win for the stronger side. There are of course the positions where one side can capture something, and they usually have more or less random results. For this reason, positions with captures are just removed from the database; your program will have to look one ply deeper and look up the position after the capture. This results in nice compression ratios for regular checkers, the compressed database is approximately 10x smaller than the uncompressed database. Now you can probably guess why the suicide checkers database doesn't compress well: The results in those databases are much less monotonous, and therefore this compression scheme is no longer particularly efficient.
Again, an example might make things clearer: In regular checkers, all positions with 2 vs 1 king are wins for the 2 kings if you remove the positions with a capture, with only one rather pathological exception; red kings on 3 and 12 and a white king on 11, with red to move. Therefore, this database compresses exceptionally well. In suicide checkers, 2 vs 1 king is normally a win for the side with 2 kings, however, if you played through the game I posted yesterday, you can see that in the endgame red could get 2 kings vs 1, but he would lose all the same. Therefore, the 2 vs 1 king database in suicide checkers has wins as well as losses in it, and doesn't compress well. On another note, this also means that the database is more important in suicide checkers than in regular checkers: Obviously, it would be quite difficult to write a heuristic that can guess the likely outcome of the game with 2 vs 1 kings on the board, something which is very simple for regular checkers. And of course for more complicated endgames, it gets even more difficult.
Monday, February 28, 2005
Suicidal Cake
[Event "Email game"]
[Date "2005-02-20"]
[Black "N.N."]
[White "Suicidal Cake 1.08"]
[Result "0-1"]
1. 11-15 24-19 2. 15x24 27x20 3. 8-11 21-17 4. 11-15 17-13 5. 12-16 20x11 6. 7x16 22-18 7. 15x22 26x17 8. 16-20 25-22 9. 4-8 28-24 10. 20x27 31x24 11. 8-11 29-25 12. 3-8 23-18 13. 10-14 17x10 14. 6x15 13x6 15. 1x10 30-26 16. 15-19 24x6 17. 2x9 18-14 {Suicidal Cake returns the man it has won to reach a winning 2 vs 2 endgame database position} 18. 9x18 22x15 19. 11x18 26-23 20. 18x27 32x23 {And here it is, this position is a win for white. Would you have guessed?} 21. 5-9 23-18 22. 9-13 18-15 23. 8-12 25-21 24. 12-16 15-11 {Red resigned. Play might have continued:}
25. 16-19 11-8 26. 19-23 8-4 27. 23-27 4-8 28. 27-32 8-11 29. 32-27 11-15 30. 27-32 21-17 31. 13x22 15-19 32. 22-25 19-23 33. 32-28 23-18 34. 28-24 18-22 35. 24-19 22x29 36. 19-24 29-25 37. 24-19 25-22 38. 19-16 22-18 39. 16-20 18-23 40. 20-24 23-27 41. 24x31 0-1
Thursday, February 24, 2005
Intermediate goals
Two weeks ago, I wrote a program that plays suicide checkers. In suicide checkers, the ultimate goal is to lose, i.e. not to be able to make a move any more (either by losing all men or by getting smothered). Now, if the final goal there is to lose all your men, instead of winning all your opponent's men, what would a good intermediate goal in suicide checkers be? To win material like in normal checkers, or the other way round? And are there any positional goals that one might want to achieve? Can you guess some answers to these questions?
Sunday, February 20, 2005
Exaggerations, part 2
Wincheck is a nice program, I particularly like the graphics. But it is far from being in the same league as Nemesis, KingsRow or Cake (no wonder, without endgame database and opening book!). Jean-Bernard wins the runner-up prize in the category "Serious program marketed with unserious means".
Saturday, February 19, 2005
Cake Manchester's opening book
The book for Cake++ only contains lines that Cake will actively select, i.e. there are no wasted moves for lines it will never play. I also left out the forced captures in that book. Finally, all moves are based on the 1'600'000 position opening database, which means that there are only very few errors left (if there are any at all).
Cake Manchester will also get an updated book - I'm just waiting for the book generator to discover the bad move that caused Cake's only loss in the big match between Cake and KingsRow late last year.
Thursday, February 17, 2005
An opening book for Linux-Cake
Wednesday, February 16, 2005
A well-deserved retirement
The replacement is an AMD Athlon 64 3400+ CPU, like the old machine this one also has 1.5GB memory. The reason that I don't have Intel inside is that the AMD processors are better suited for integer computations than the Intel CPUs - for floating point it's the other way round. But since checkers programs (chess programs too) only use integer numbers, you get much more bang for the buck when you choose an AMD processor.
Tuesday, February 15, 2005
Exaggerations, part 1
Let's start out with strategist checkers by Arthur Crump, which is advertised as "Strategist checkers is the ultimate opponent". Mr Crump boldly continues "Whether you're brushing up on your game or practicing for a tournament, strategist checkers can help you". You can play against the lowest of 3 playing levels in the unregistered version. Even a pathetic player like me can easily beat it on that level. To get access to the other levels, you're supposed to pay 10$. The program has practically no other features except load and save game, and that of course isn't PDN! No book, and no endgame database, of course.
For the fun of it, I had Cake Manchester play without book on the instant level (1/100th of a second thinking time) against Strategist checkers. You can copy-paste the resulting slaughtering into CheckerBoard. Cake never got the opportunity to use its endgame database, because the game ended before the database was relevant!
The bottom line: This program is so incredibly bad that Mr Crump's wild claims about his program are immediately obvious. He can only hope to fool those who really know nothing about checkers or checkers programs at all. Mr Crump easily wins the title in the category "largest difference between real and advertised playing strength". And that guy earned more money with his program than I did with mine :-(
[Black "Cake Manchester 1.09"]
[White "Strategist Checkers"]
[Result "1-0"]
1. 11-15 23-19 2. 8-11 22-17 3. 4-8 17-13 4. 15-18 24-20 5. 9-14 27-24 6. 5-9 31-27 7. 18-23 27x18 8. 14x23 26-22 9. 11-15 22-17 10. 7-11 25-22 11. 9-14 30-25 12. 14-18 19-16 13. 12x19 32-27 14. 23x32 13-9 15. 6x13 20-16 16. 11x27 28-24 17. 19x28 17-14 18. 10x26 25-22 19. 18x25 29x22 20. 26-31 22-18 21. 15x22 21-17 22. 31-26 17-14 23. 27-31 14-10 24. 2-7 10-6 25. 1x10 1-0
Monday, February 14, 2005
The world's most awful checkers program...
Saturday, February 12, 2005
Kingscourt
Checkers Variants
Now, even without changing the possible moves, we can generate checkers variants: I'll take a closer look at two specific changes. The first is Kingscourt: the first side to make a king wins. If one player loses all pieces or cannot move, he loses. Another variant is Losing Checkers (also called suicide checkers): The side which loses according to normal rules wins.
The first thing to note is that Kingscourt cannot end in a draw; it must be a win either for black or for white. Losing checkers on the other hand has many drawn endgame positions, some of them are quite surprising! I'll return to this topic in my next post.