Checkers engine

Hello,

I have played more than 100 games with checkers pieces now and here are my thoughts about your implementation of this great game:

. as already said in a previous post: thank you again for the mandatory jump rule… that changes everything

. the engine has 6 different levels. We can clearly see the strength growing level after level in the opening or the middle game. Unfortunately, the engine does not know how to win in the endgame, even at its highest level. Once it gets a king, it becomes clueless, loosing time with its king.

You said in an old post it would be easy to improve the checkers engine. It would be great to give it the tools to close a game :wink:

It’s a hard fight for me to keep the middle game leveled at the highest level (which is a good thing!), but also frustrating to see that the engine cannot win easily with more kings than you.

My old electronic board from the 80’s is much stronger… which is weird in 2025.

Any future plan to upgrade the engine?

The code we would need to add is an endgame table base. Both chess engines and checker engines struggle with move sequences that are many moves deep in the endgame. The equivalent for chess is something like a single rook endgame sequences. The engine can get lost on how to make progress.

If we do add this - it will become incredibly strong - so we would probably only add it to the highest Ai level.

I am not sure when we will be able to add it, but I will make a note of the feature request.

1 Like

I understand the strength and the need of endgame table base when you have only kings on the board (1v1, 1v2, etc…). Today, when the engine has two kings and I have only one, I consider the game lost, even if the engine is not capable of closing the game. So this problem is not so bad.

Which worries me is the following:

Once the engine has got a king, its goal does not seem to gain a second one (and then a third) as quickly as possible (when there is no drawback in following this strategy, of course). It seems to temporize with useless moves between two squares with his king (even at highest levels). There are still many pawns on the board and no need yet to use endgame tables. I will post an example if you want.

And thank you for your quick answer :wink:

Ok yeah we have seen this too. And yes I agree that a small table base will not work for positions that are still “dense” with pieces.

I think we will need to come up with a way to reward king proximity to opponent pawns. Currently we reward pawn position, pawn count, and king count. So the Ai is not incentivized to chase down the pawns unless it can see the capture (and the move horizon is not too deep - to keep it beatable and fast). We can probably figure out a simple incentive that makes it engage the kings and not just scoot them back and forth.

I was perhaps a bit harsh with the engine which is more consistent with its kings at level 6 than level 5. But a small table and a small change in the incentive will certainly help.

Thank you for your answers. I know that checkers is not the core game, and I appreciate your efforts to improve the AI. Your boards are a pleasure to play with :smiley: