Now what did I say recently about resisting the urge to add new features? Unfortunately my ability to discipline myself and stick to the plan has been found wanting (again) and instead of honouring the “feature complete” status I’d declared in previous blog posts I have added a couple of new features.
The good news is that the new features are pretty fundamental actually and rather good (I think). The features are closely related – database pattern search and database material balance search. Maybe they’re really actually two variations of one new feature. As is typical for me the features were inspired my my own usage and I implemented exactly what I wanted – without looking at how similar features work in other chess GUIs. Not good practice I know, but it’s hard to change the way I work at this point in the journey.
The sudden realisation that I really needed more database search facilities than simply “position search” struck me suddenly soon after playing a pleasing tournament game. I had been trying to play a quiet QGD position, but my opponent pushed my Bg5 to f4 and this spurred me to recall that there is a legitimate QGD plan that involves Bf4, O-O-O, g2-g4, h2-h4 and a caveman attack. I decided that might be a lot more fun even if it’s obviously pretty risky, and the story had a happy ending with a quick win. After the game I thought that I obviously needed a way to search the database for games where White pursued this plan. The result is a new feature “Database Pattern Search”. This is how it looks in practice;
Basically this feature first invites you to position a group of pieces any way you like. I have arranged some pieces in the positions that suggests an attack like the one I pursued in my QGD game. When you press OK the database is searched for any games in which this particular pattern is reached at any point of the game. So in the example, all games are found in which at some point Black’s king was on g8 (suggesting kingside castling), and White had pawns on d4, g4 and h4, a Bishop on f4 a King on c1 (suggesting queenside castling).
I quickly decided I needed to supplement this with a related, but more flexible feature which I call “Database Material Balance Search”. Here is a simple example to illustrate that.
With this feature, it is not so much where the pieces stand, but which pieces are present that matters. In the example I am specifying that White must have just a Bishop and Pawn, whilst Black has nothing but a bare King (since every legal chess position has one White and one Black King, their presence is implied – so putting them on the board is optional).
Now as it happens for this example I have specified some refinements that mean that actually the positions of the two White pieces are important for the search. I have specified “Bishops must be the same colour”. This means that White must have a light squared Bishop (and a Pawn). I have also specified that “Pawns must be on the same files”. This means that White must have a light squared Bishop and a h-pawn. I am sure that the well schooled readers of this blog will understand immediately that this is an important pattern in chess – it is the “wrong coloured Bishop” ending – White cannot win if Black can get his king to h8 since there is no way to evict the king from the queening square (due to stalemate).
I have also specified “Include reflections”. This will pick up games that reach a situation where White has a Bishop and an a-pawn versus a bare king – and since we have specified that Bishop colour matters the search is smart enough to again restrict the search to games where White’s Bishop is the “wrong colour”, which in this case means a dark squared Bishop. Actually it’s not so much that the search is smart, it’s just a reflection (pun intended) of the underlying logic of the search – the mirror image reflection of the light squared Bishop on g4 is a dark squared Bishop on b4. Similar considerations mean that specifying “Include reversed colours” mean that games where Black faces White’s bare king with a (wrong coloured) dark squared bishop and an h-pawn, or a (wrong coloured) light squared bishop and an a-pawn are also found.
I hope it is obvious how it is possible to quickly find all kinds of worthy endgame material to study. For example, rook and three pawns versus rook and two all on the same side of the board (usually a draw – but not always). Or maybe this one, which has enormous practical significance;
This is rook and four versus rook and three, the stronger side’s extra pawn is an outside passed pawn. I have not only specified the pawns must be on the same files, I have locked down the outside passer so it must be on a7, one square from queening. You can lock down as many squares as you like simply by right clicking them. Of course appropriate adjustments will be made to the locked down square(s) for the reflected and reversed forms of the search. For example if Black is the stronger side with three queenside pawns each and an extra black passer on the h file, it will be locked down to h2, one square from queening.
We are not just restricted to finding worthy study material. You can search for chess entertainment. The following search looks for any games where one side had three (or more queens).
When I first started reading about the lighter side of chess 40 years or so ago I seem to remember there was only one example of a three queen versus two game (a dubious one at that – possibly an Alekhine construction). It turns out now there are many more examples.
Another entertaining search is to simply set the initial position, but specify that this material balance must be present for at least 100 (say) half moves. That finds interesting manoeuvering games where nothing is exchanged for at least 50 moves.
One final example, a return to worthy study material, making liberal use of lock down to restrict the pawn structure. This is a search for some typical IQP (isolated queen pawn) positions. The pattern search feature could also be used, but the material balance feature is more flexible and allows a more refined search.
My intention is to publish a new Beta version of Tarrasch V3, including these new features in the next week or so. At that point I will be getting fairly close to the the ultimate goal of an official Tarrasch V3 release and retirement of Tarrasch V2. Maybe even before the end of July.
Remember that you can follow my progress, on a day by day basis (assuming I make progress every day :- ) with the following link.