type="text/css" />

tactics tool Chess forum

13 replies. Last post: 2019-09-17

Reply to this topic Return to forum

tactics tool
  • Tommah at 2017-08-31

    I want to share a chess training tool that I made recently: https://new.amecy.com/main/checkmate .  It offers a set of practice positions that contain forced checkmates.  You move the pieces, and the page tells you whether you have chosen the right moves.  About 40 positions are accessible so far.  There are more hidden positions in the database (about 900), but I am not ready to make them all accessible yet.

    By the way, you don't have to sign up to use that page.

  • Crelo at 2017-09-01

    Very nice, I already did the first 4 problems. It made me remember the time when I was 12 and studying chess.

  • Tommah at 2017-09-01

    I should have mentioned that the problems on there are relatively simple.  I will add some more difficult problems soon.

  • Tommah at 2017-09-10

    I have added more positions.  Some of the high-numbered problems (700-1001) are more challenging than the first 50.

  • Tommah at 2018-05-19

    I've done a lot of work on the checkmate trainer over the past year, so I invite you again to take a look ( https://new.amecy.com/main/checkmate).  The biggest improvement is that the site now maintains a record of which problems you have solved.  If you sign up on the site, your progress is saved for 30 days.  If you use the tool without signing up, your progress is saved until you close the page.

    I also added about 40 more problems to the page.  I have been testing out the rest of the problem set, and I will soon start adding new groups of problems on a regular basis (around 50 per month for the next 12 months).

  • Tommah at 2018-09-18

    I have recently done more work on the checkmate trainer.  The big change is a new feature that will help you if you cannot solve a problem.  You can now click the button that says “Show solution”, and the board will flip so that you can play as the other color.  The computer will then demonstrate the checkmate to you.

    I have also added around 40 more problems, bringing the number to 212.

  • Tommah at 2018-10-24

    I have added 91 more problems, bringing the number to 303.

    I have also begun the process of moving the tool to its own site ( https://www.checkmatechamp.net/).  If you want to keep seeing these updates, please visit that site and follow the Twitter account that I mention there ( @CheckmateChamp).  I will keep posting about major changes here on LG, but I will save minor news items for the Twitter page.

  • Tommah at 2018-11-29

    I have added about 200 more problems, bringing the total number of problems to 501.

    I have also added some small conveniences (a blue highlight around the computer's move, and automatically showing the first problem when you visit the page).

  • Tommah at 2019-02-10

    I recently added two big features to Checkmate Champ:

    (1) The site now saves your progress permanently, without your needing to log in.  This is done using the browser's localStorage object.

    (2) You can now make moves by dragging and dropping pieces.

    Try it out at https://www.checkmatechamp.net/ .

  • Tommah at 2019-09-13

    I realized that I haven't posted about my tactics site in a while, so I figured I'd post one more time to let all of you know how it turned out.  There are now 800 problems on the site.  Your progress is saved in the browser, so you can keep coming back to the site to do a few problems at a time.  (You don't have to sign up for this either.)  If you make a bad move, the site tells you and plays moves to show you why your move doesn't work.  The interface could certainly be cleaned up, but I am pleased with how the site turned out overall.

    The site is now called Checkmate Champ and can be found at https://www.checkmatechamp.net/ .  I have slowed down development for now, but I intend to keep the site running permanently.  There is a new feature (showing multiple variations) that I am still working to implement, a little bit at a time.  It will probably be ready in a few months.

  • Carroll ★ at 2019-09-15

    Thanks a lot Tommah.

    Can you explain a bit more about some points: are the problems yours or do you collect them on the net ; did you develop your own engine to compute solutions on variations ; what did you use as a framework ; nice not to be forced t log in, what trick did you use… ?

  • Tommah at 2019-09-16


    The problems come from a book called “1001 Ways to Checkmate” written by Fred Reinfeld and first published in 1955.  This book is pretty famous, and a lot of its problems show up in other problem sets.  IIRC, a few of its problems appear in CT-ART too.  On my site, I only present the problems that are mates in five or fewer moves.  This is why the numbering in the problem list has gaps.

    The chess thinking is done mostly by an off-the-shelf chess engine named Glaurung.  Glaurung doesn't seem to be used much these days, but its code was the basis for Stockfish.  When you make a move, the new position is sent to the server, and Glaurung runs on the server and evaluates the position.  The new position (and the computer's move) are then sent back to the browser.

    The site runs under a Python framework called CherryPy.  This is mainly for historical reasons.  Years ago, I ran my site as a set of CGI scripts.  When I eventually moved the site to a new host that allows persistent processes, CherryPy was the easiest framework to get working with my old code.

    Your saved problems are recorded in the browser's localStorage object.  If you open the JavaScript console and type “localStorage” (without the quotes), you should see a key named “ACT_1001_solved_ids” and a string value.  The solved problems are encoded into that value as a kind of bitfield.

    (I am going to start blogging soon, so I may expand on some of these points in a blog post.  If I do, I'll post a link here.)

  • Tommah at 2019-09-17

    I realized that when you were asking about the framework, you may have meant how I was showing the front-end in the browser.  The front-end is a mix of vanilla JavaScript and js_of_ocaml, which is a translator from the OCaml language to JavaScript.  I started in vanilla JS and intended to rewrite it in OCaml, but I ended up leaving my original JS alone, and I just write the new code in OCaml.

    I'm not using any of the big JS frameworks like React or Angular.

Return to forum

Reply to this topic