Solitaire chess is a tried-and-true method of training. I have used it before but not so much these days because I have issues with how solitaire books deal with "points", and relatedly how they deal with second-best moves. Now I came across this blog post "A New Training Game" by Dietrich Kappe and realized this is (almost) exactly what I wanted:

http://chesstraining.sourceforge.net/wordpress/2011/01/05/a-new-training-game/For me Kappe's key part is here:

5. Think about the three moves you think are the best candidates. ...

6. Rank your three choices from highest to lowest, so choice #1, choice #2 and choice #3. ...

It's a bit of an improvement over finding the single best move. For one thing there's an extra emphasis on evaluation, because I have to explicitly rank the candidates. My plan is to embrace and extend the author's method slightly.

- Pick a player to follow on
*The Week in Chess*, could be any GM basically. I haven't decided which one yet. Or pick an opening. Or pick long games, short games, etc. - Each week play through one or more games solitaire style.
- For each move, pick three candidates and rank them 1,2,3; call these my
**choices**. Only if there are not three legal moves would I have fewer than three candidates. - After my guess-the-move(s) on the whole game is complete, go through the game again (backwards) with an engine. This might be a good idea anyway.
- For each move, with the engine set to some arbitrary search depth, list the engine's top three candidates a,b,c; call these the engine's
**slots**. - For scoring, my choices 1,2,3 are worth 3,2,1 points respectively, the engine's slots a,b,c ditto, and my score is the product of my choice and the engine's slot. For example if my 1,2,3 are ranked by the engine as a,c,e, then my score is 3*3 + 2*1 + 1*0 = 11. See below for what to do with this score, and what to do when there are not three legal moves.

In general scores can range from 0-14, so for most moves I will just use a raw score of 14. If there are only three legal moves, scores can range from 10-14, so I will simply subtract 10 and make them worth 4. If there are only two legal moves, scores can range from 12-14, so subtract 12 and make them worth 2. If there is only one legal move, it's worth zero. I'm planning to just eyeball the opening and skip over any moves where I already "know" the book. And I'm planning to report just a percentage score for each game, total points earned divided by total points possible.

A couple things I like about using an engine. First, there's suddenly a limitless supply of solitaire games, without any need for some GM to select them and assign points to the moves. Second, while the scoring method is a little abstract and arbitrary, it's also

**repeatable**, which means over time I should be able to know if I am getting better at it. Maybe the scoring is a little crude, but averaged over many moves in a game that shouldn't matter at all. In particular I don't think it's necessary to use a great depth and get a super-accurate ranking by the engine.

If you would rather be old-school and use a book there is this nice thread:

**Which Books to Study Solitaire-Style** https://www.chesspub.com/cgi-bin/chess/YaBB.pl?num=1417756121And if you want to know about training methods in general I found this thread to be very good. Probably it should be marked sticky/important:

**Tactics problems are harmful** https://www.chesspub.com/cgi-bin/chess/YaBB.pl?num=1462142688Below is a chart of possible scores, where the Hexadecimal values are 10=a 11=b 12=c 13=d 14=e 15=f. It's a little unfortunate that the engine's slots a,b,c collide with the hex representations of 10,11,12, but I'm going to leave that imperfection.

**N>=4**

1:aaaaaaabbbbbbbcccccccxxxxxxxxxxxxx

2:bbccxxxaaccxxxaabbxxxaaabbbcccxxxx

3:cxbxbcxcxaxacxbxaxabxbcxacxabxabcx

------------------------------------

1:9999999666666633333330000000000000

2:4422000662200066440006664442220000

3:1020210103031020303202103103203210

------------------------------------

S:eddbba9dcb8976b9a76538767545423210

**N=3**

1:aabbcc

2:bcacab

3:cbcaba

--------

1:996633

2:426264

3:121323

--------

S:eddbba

**N=2**

1:ab

2:ba

----

1:96

2:46

----

S:ec

**N=1**

1:a

---

1:9

---

S:9