Another effort at learning to play chess

03/19/2010 11:07:18
tags: chess

At various points in the past, I have tried to learn how to play chess. I’ve known the rules since I was a kid, but that’s very different than actually knowing how to play.

I tried playing against the computer for the first time as a child as well - the first time against Sargon III which my parents bought. I believe it kicked my but every time I played, and I’m sure I had it on the easiest settings.

Many years later, after college I believe, I started playing a few games against MacChess and against a RadioShack 1750L chess computer. On the easier settings, I could manage to squeak out a win now and then and stopped playing after a few weeks.

A few months later, I tried to get back into it and played a few blitz games online, losing fairly decisively. When you aren’t sure of the openings, it’s really hard to play fast and not make major mistakes.

Then I got really busy with medical school, and then residency and didn’t play for several years. When I found some free time again, I looked into chess software again. I played a fair number of games against GNU Chess and Sigma Chess, and discovered Scid and crafty as well. I could finally have a computer review my games and point out some of my mistakes and suggest better moves.

The next stage was chess on the iPhone — Caissa, tChess Pro, Shredder, and Fritz. Having the computer assign a playing level based on your performance, and then adjust its rating accordingly was great. I could start out playing against an 800 level opponent, and feel the satisfaction of recognizing its mistakes and exploiting them. Each game would become a little tougher, until I started to draw or lose. If that got too frustrating, I could always knock its strength down a few hundred points and start the cycle over again.

I started playing again about a month ago, and can tell a huge difference in my approach. I’m still working out my approach to openings, but I generally have something of an understanding of what I should try to accomplish at most points in a game. I’m still using Scid and Crafty to store and analyze my games, but what’s made it much more fun is online corresponence chess.

Blitz chess online was nice in that it was with real opponents, but the speed wasn’t my style. I learn more from playing a game where I have a few minutes to study the board, try out some variations, and then make a move. When I started playing at The Immortal Game, I was able to do just that with people all over the world at a pace that allowed me to improve, and not just react.

I’ve also developed the tools I use to review my games:

  • I used a quick batch script to download approximately 900,000 games from TWiC to create a database of prior games for comparison to my games

  • I created a few perl scripts and a Makefile to automatically annotate a pgn file after I finish a game


To download a bunch of games from TWiC, simply go to and choose the files and type you need. I used the PGN versions.

In the interest of their bandwidth, I’ll leave it as an “exercise to the reader” to write your own batch script, but it wasn’t hard and few shell commands later I had imported the pgn fies into Scid.


I use crafty to annotate my games. It’s pretty easy, but it’s easier when you can type one command to annotate a folder full of games. My sytem uses make to run several scripts to automate the processing.

Note: this process is very “command-line” heavy. I’m happy to help fix bugs in my scripts, but don’t ask me to help you figure out how to install the software. This was a quick script designed to solve a need for me. Others may find it helpful, so I’m sharing it, but it’s not likely to ever get polished for true “release”

  • Download the three files (currently stored as a gist)
  • put and in your path somewhere
  • put Makefile in a new directory - this will be your working directory
  • edit Makefile to match the settings you need (particularly user)
  • put some pgn files in the working directory (make sure they end in “.pgn”)
  • type make at the command-line and let it run. It may take a while

In theory, the scripts will neaten up your source pgn files, edit the headers to ensure they are “crafty-compatible”, run crafty to perform the annotation, and then merge the files back together to attempt to conserve any annotations or variations that existed in your source pgn. This process is not perfect, and you may have to edit the final file by hand to resolve any conflicts. If you never have any annotations or variations in your source files, you could edit the scripts to skip this step fairly easily.

My workflow consists of :

  • while playing, I make notes to myself about my thought process as comments in Scid

  • after the game is over, I export the PGN to my working directory and type make or make online depending on which username it should use for annotation

  • I then append the annotated pgn to my archive pgn file. I use this to store all games that I have played. I keep this as a pgn instead of a scid database so that I can import it into tChess Pro on my iPhone if desired. Because it’s not that many games, the perform in Scid is just as good as for a native database, but some features aren’t enabled.

So I have a pgn of my completed games, a Scid database of my active games so I can try various lines to see if I think they would work, and a database of ~ 900k games from TWiC I can use for research, if desired. (I’m still working out how to make use of that database…)


Leave a comment