and has 0 comments

A wing gambit is a way for one of the players in a game of chess to sacrifice a pawn on the b or g files in order to deflect defenders of the center. Like all gambits, it is an aggressive attempt to gain position by sacrificing material, in this case, an attempt to control the center of the board. Today I want to talk about a gambit that occurred to me while I was thinking of a way to play against the Sicilian Defence. It involves moving a pawn to b4 to counteract the Black move c5, which is also, in a way, a sort of wing attack. I liked the concept: you outflank the opponent. Looking in the chess database, this is called the Sicilian Wing Gambit.

The first thing to notice is that the b pawn is irremediably lost. Declining the gambit brings no advantages to Black whatsoever, so they must take. After c5xb4, you have lost a pawn and also blocked the c3 square, the traditional best starting point of the queen's knight. So, as white, you have moved two pawns, lost one and also the best square for one of the minor pieces, while developing none. It doesn't look good and, for that reason, this gambit has been scorned in the past as unprincipled. It has made a comeback, though. It is not something you should expect to see at world chess championships, but it is good for blitz games and for throwing your opponent off track.

Even if White appears to have lost time, material and positional advantage, there is no clear way for Black to punish them. We will examine some of the options that Black has and where they led in various database and computer simulated games. The next move of White's is a3, attacking the pawn and preparing to open the a file. Another option of White's is to immediately challenge the center with d4. We will examine both options, as well as some rare variations (of such a rare gambit), like Nf3. So here is the PGN file I've compiled. Move carefully through all variations and read the comments. It might intrigue you enough that you would adopt the Sicilian Wing Gambit as a permanent part of your chess repertoire:
1. e4 c5 2. b4 {challenges c5 in order to deflect it from d4} cxb4
(2... b6 3. bxc5
(3. Bc4 {White is not forced to take.} e6)
(3. Nf3 {A normal development plan can be attempted while deciding what to do on c5} Bb7)
(3. b5 {Or even push the pawn forward, blocking the b knight and the rook for a while} Bb7
(3... a6 {although I don't particularly like the possibilities after a6.})
4. Nc3 e6 5. Nf3 Nf6)
3... bxc5 {Here Black declined the gambit and maintained a pawn on c4.} 4. Nc3 Nc6 5. Rb1 {But White gets first to control the open b file.} g6 6. g3 Bg7 7. Bg2 Ba6 {Black has tried to revert to their original Sicilian plan, but some parts are clearly different because of the lack of the b pawns})
3. a3
(3. d4 {White might want to move for the center immediately} d5 4. e5 {But here the engines give almost one full pawn to black}
(4. exd5 Qxd5 {while here the Black queen is safe from harassment because the b4 pawn is still there.})
4... Nc6)
(3. Nf3 {This is the line suggested by a chess engine. I'll follow it through a little more.} Nf6 4. e5 Nd5 5. a3 d6 6. Bc4 dxe5 7. Nxe5 e6 8. axb4 Bxb4 9. Bb2 O-O 10. O-O Qg5 11. Re1 Nc6 12. Qf3 Bd6 {No humans have played a game like this. From here the engine mercilessly simplifies the situation.} 13. Nxc6 bxc6 14. g3 Qf5 15. Qxf5 exf5 16. Bxd5 cxd5 17. Ba3 Bxa3 18. Rxa3 {Black has managed to control the center, even if the White rooks are really active.} Be6 19. Ra5 d4 20. Na3 Rfc8 21. d3 {At this point I ended the simulation. Clearly White has failed to control the center and gained only limited mobility. Black has an extra doubled pawn and the game will probably draw.})
(3. c4 {Santasiere variation: an even more gambity move, baiting b4xc3 followed by Nc3 and gaining development and center control. The few games that played like this did not finish well for White, though.} bxc3 4. Nxc3 g6 5. Bc4 Nc6 6. Nf3 Bg7 7. O-O Nf6 8. e5 Ng4 9. d4 O-O 10. h3 Nh6 11. Bf4 d6 12. Qe2 Nf5 13. Rfd1 Qa5 14. Rac1 e6 {This is an entire game that ended in an agreed draw - Rainer-Guenter 1995})
3... bxa3
(3... d5 4. exd5 {this is the main move}
(4. f3 e5 {A single game with this situation. White has delayed too much piece development and pushing of the d pawn. Black won.})
(4. e5 {But this is met more and more in Blitz games.} Nc6 5. d4 Bf5
(5... Qb6 6. Be3 Bf5 7. Bd3 Bxd3 8. Qxd3 e6 {This is the recommendation in the video, with Black having a better game.} 9. Ne2 Nge7 10. O-O Nf5 11. axb4 Bxb4 12. c3 Be7 13. Nd2 O-O 14. Nf4 Rfd8 15. g4 Nxe3 16. Qxe3 {Black is better with the a and b passed pawns.})
6. axb4 Nxb4 7. Bb5+
(7. Na3 e6 8. c3 Nc6 {This is the situation covered in the video, Black has extra development, but difficulty in continuing it. White eyes b5 and has everything wide open.})
7... Bd7)
4... Qxd5
(4... Nf6 5. axb4 Nxd5 6. Nf3 Nxb4 7. d4 Bf5 8. Na3 e6)
5. Nf3 {Marshall variation}
(5. Bb2 {Marienbad variation} e5 6. axb4)
5... e5 6. axb4
(6. Bb2 Nc6 7. c4 {en passant would be a bad move, due to Nc3} Qe6 8. Bd3 Nf6 9. O-O Bd6 10. Re1 O-O 11. axb4 Nxb4 12. Bf1 e4 13. d3 Qd7 14. dxe4 Bc5 15. Bxf6 Qxd1 16. Rxd1 gxf6 {Another variation from the video, stopped here as it didn't look very promising for Black.})
6... Bxb4 {White's plan backfired. Instead of a strong center and fast development, Black has the center and a strong center queen. The engines, however, show a mere 0.2pawns in advantage for Black.})
(3... e6 4. axb4 Bxb4 5. c3 Be7 {Another win for Black: a silly dark bishop, a blocked knight, but White keeps control over part of the center and controls one open semifile.})
(3... Qa5 {A possible annoying move} 4. Bb2 {But this solves most of the issues.} Nc6 5. Nf3 Nf6 6. Bd3 {Yet not all. The d pawn is effectively pinned.})
(3... Nf6 4. e5 Nd5 5. axb4 Nxb4 6. c3 N4c6 7. d4 {Black has a knight out, but White has a monster pawn chain, an open semi file and a lot of open avenues. Black will attempt to control the light squares, while White will be busy trying to achieve some sort of king safety.})
4. Nxa3 {A knight on the rim is dim, but here it prepares to go to b5, where it would force the queen to defend c7 and threaten a7} d6 5. d4 {Black wanted to stop White from having a two pawn center. Instead, even a three pawn center is possible.} Nf6 6. Bd3 {this seems to be the mainline, but even so, there are only 43 games starting like this in my game database} Nc6 {From here, engines and database, all three games, show equality between players.} *


Take notice that I am still a beginner in chess and my analysis is based on what I've compiled from the database of chess games and a video. Here is a video and the PGN of a game that played along the main line in my analysis (Vladimir Grabinsky 2361 - Albert Lyubimtsev 2148, from 2003) where White won.

[youtube:yN73tcJlsKw]

1. e4 c5 2. b4 cxb4 3. a3 bxa3 4. Nxa3 d6 5. d4 Nf6 6. Bd3 Nc6 7. c3 g6 8. Ne2 Bg7 9. O-O O-O 10. f4 Ne8 11. Kh1 Nc7 12. Qe1 a6 13. f5 b5 14. Nc2 Bd7 15. Qh4 Ne8 16. Rf3 e6 17. Qg3 {White missed an opportunity here, according to the chess engine.}
(17. Bg5 f6 18. Rh3 fxg5 19. Qxh7+ Kf7 20. Qxg6+ Ke7 21. Qxg5+ Rf6 22. Nf4 exf5 23. Re1 Kf8 24. exf5 Rh6 25. Rxe8+ Bxe8
(25. .. Qxe8 {This would have been a blunder leading to massive material loss and/or mate in about 15 moves.})
26. Qxh6 Bxh6 27. Ne6+ Ke7 28. Nxd8 Nxd8 29. Rxh6 {A much simplified position, where White has two extra pawns and Black has an exposed king.})
17. .. e5 18. Be3 Bf6 19. Raf1 Ng7 20. Bh6 {This move maintains both sides to a near equality, with a slight advantage for White.}
(20. d5 {The computer sees this option, which wins almost a pawn immediately and locks the king side from the defence of Black's pieces} Bh4 21. Qh3 Nb8 22. g4 Ne8 23. Bh6 g5 24. f6 b4 25. Ne3 a5 26. cxb4 Qc8 27. bxa5 Na6 28. Ng3 Qc5 29. Ngf5 Ra7 30. Ne7+ Kh8 31. Bxf8 h5 32. Bh6 Qxe3 33. Rxe3 Bxg4 34. Qg2 Kh7 35. Bxg5 Rxe7
(35. .. Bxg5 36. Rh3 Nxf6
(36. .. Bxh3 37. Qxg5 Bg2+ 38. Qxg2 Nxf6 39. Rxf6 Rxe7 40. Qg5 Re6 41. dxe6 fxe6 42. Rh6#)
37. Rxf6 Kg7
(37. .. Bxf6 38. Qxg4 h4 39. Qg8+ Kh6 40. Nf5+ Kh5 41. Be2#)
(37. .. Rxe7 38. Qxg4 Kg8 39. Qxg5+ Kf8 40. Rxh5 Ke8 41. Rxd6 f6 42. Qg8#) 38. Rxh5 Rc7 39. Qxg4 Rc1+ 40. Rf1 Rxf1+ 41. Bxf1 f5 42. Qxf5 Bxe7 43. Rh7+ Kg8 44. Qf7#)
36. Bxh4 Nac7 37. fxe7 f6 38. Be2 f5 39. Bxg4 hxg4 40. Rxf5 Ng7 41. Qxg4 Nce6 42. Rh5+ Nxh5 43. Qxh5+ Kg8 44. dxe6 d5 45. Rg3#)
20. .. Qe7 {-2.11/15 10 The engine recommends Ne3, which leads to a variation where for more than 20 moves white appears to be a minor piece ahead, only the score is positional only. Queens come off the board, too.} 21. Qf2 {+0.26/14 10 Alekhin's Gun always looks impressive. From here it goes downhill for Black.} gxf5 22. Rg3 f4 23. Nxf4 exf4 24. Qxf4 Nd8 25. e5 *


Update: I've updated the above game with some computer analysis.

It is important to understand that Black did not lose because of the wing gambit, but because of their own mistakes further on. According to the computer, both players had almost complete equality up to almost the 20th move, which does not bode well for White. Most chess engines give about 0.25 points to White for having the first move, so somewhere that advantage was lost. However, we are not computers.

For what I see in the various games that were played using this anti Sicilian opening, I see several key points where each side is trying to reach. A common theme is the pushing of the e pawn from e4 to e5, defending it with d4 and defending that (while cutting access to the White king) with c3. Other variations see a strong three pawn center for White, making a sham of Black's attempted Sicilian. Moving the e pawn prematurely, before getting rid of the Black b4 pawn seems to be a mistake, though, even if it immediately achieves the classic two pawn center. The a3 move seems to want to open up the a file for the rook, but in the simulations I've run, the rook doesn't seem to have an important role. Also to note is that the queen side knight will most likely take the Black pawn on a3, which takes it to the rim of the board and away from the center. So even if control of the center is achieved, maintaining it might become problematic. Gutsy c4 pawn push, goading Black to take it en passant, only works if Black falls for it and even so, not very well: the knight on c3 will remain undefended on a move like d4. The computers recommend Black ignoring that pawn and pushing to e5 with more than half a point advantage.

On Black's side, it appears as there are several strategies as well. Defending with b6 declines the gambit and leads to something similar to the original Sicilian, regardless of the desired flavour of it. Even if White is pushing the pawn to b5 and hinders the development of the Black queen side knight. While the Black pawn is still on b4, attempts to break out the center, like the Scandinavian looking d5 work better, as an exchange on that square can end with a comfortable Black queen on d5 without the threat of Nc3. In general, taking the pawn on a3 seems to be a mistake, as White will only aid in the dark bishop's development if they take and the Black pawn on b4 can be defended in multiple ways further on, invalidating the gambit. A possible annoying move for White is moving the Queen to a5 and the recommendation of the guy in the video is to move it on b6, an intriguing strategy that seems to break the opening principle of not bringing the queen out too soon. Moving the e pawn at least to e6 seems to bring benefits as well.

Even if the Sicilian Wing Gambit is not very common and thus not analysed in depth so much, it doesn't mean it can't be a useful tool. I know that most chess opening videos have more to offer than what I posted above, but given the rarity of the gambit, it only makes sense to have less information on it, no tested traps, etc. If you play this opening, please let me know. I could update this post with your real life experience playing it.

Update: I've found a page where GM Roman Dzindzichashvili considers the Wing Gambit in the Sicilian a reason to seek psychiatric help :) Here is the link.
Also, I have updated the PGN with the official names for some of the variations of the gambit.

Update 8 March 2016: I've revisited this gambit with more research and computer analysis, check it out: Sicilian Wing Gambit - Revisited

and has 1 comment
In a previous post I've written about my thoughts on how to learn chess, with the main emphasis being on game analysis. But how that is done is a matter of time, taste and budget. This post is about how I do it. I don't know how other people are analysing chess games, except from hearing them talk about it, so I am not an authority in the matter, but it will save you some time figuring it out for yourself (which you still have to do even if you read the post :) ).

The easiest way of all is to get a game in PGN form, load it in a chess program, then watch it unfold, while you think about what you would have done differently and highlight what you thought was a good move and a bad move. Of course, that relies on your own thinking, which may be flawed, so you can gain help from a chess engine that will analyse the variations and tell you what it thinks of what you thought. It sounds complicated, but it is not. You ask yourself why the player didn't fork the queen and the rook with the knight, you can do it for them (creating what is called a variation). While you are moving the pieces, a chess engine can suggest, based on the time you let it analyse, what is the best move in that situation.

For this I use Arena Chess GUI, a free chess program, and load up the free chess engine versions of Houdini and Rybka. Arena comes with more engines, so you can try them all, but really it's a matter of taste. I once did a championship of chess with the chess engines available in order to see which is best, but there is no real way of giving both chess engines the same computer resources, so the programming style of each engine makes this only a fun comparison, not a scientific one. There are videos on YouTube with competitions of chess engines; those are fun in their own right. Unfortunately, Arena is not really bug free. There are a few gotchas that you learn the hard way, like don't use the Minimize to tray option if you have the default "load PGN at startup" on, or don't use "save back into PGN", etc.

Of course, most chess engines have a free version and a commercial one. Depending on your seriousness, you can choose to pay money for them and get the advantages of new development in chess computing, but don't expect too much. After all, a computer engine only takes a formula that gives a value for a position and then makes a tree of possible move orders in order to minimize their opponent's advantage and maximize theirs. The algorithm is pretty standard and the formula, which really makes the difference between engines, is the outcome of centuries of chess analysis. The game hasn't changed that much in a few years. And exactly this difference between how humans process a game and how a computer does it, makes this analysis a little flawed. A computer will tell you where you went wrong, but won't be able to devise a winning strategy for you, as it is examining every move like it would be the first. So we move to plan B.

Another option for analysing a game, thanks to the vast database of chess games ever played, is to see what other players, human grandmasters and below, have done in the same situation. A software that was built to do this is ChessBase. And it is true that there is a gazillion of possible chess games, but they all begin kind of the same. The opening principles restrict the way a game can start and for the first 20 or 30 moves, there are a lot of players that did the same thing (and played a decent game). ChessBase is a great program, just like Chess Arena, because it allows flexibility in the way you use it without bundling it all. The program is small to download, then you get to download whatever chess engines you want, game databases, video tutorials, etc. To give you an example of size difference: ChessBase 11 is 150MB, the chess player base is 640MB, a video tutorial of chess openings in ChessBase format is 1500MB, while the MegaDatabase of chess games is 2700MB. You can imagine that there are a lot of games in that database, over five million of them. Unfortunately, ChessBase, the databases and the tutorials are not legally free. They cost around 200 euros, plus a few more for the tutorials. Not much for the effort that was put into them.

The chess blog posts that I am using to publicize games are done by using these kinds of scenarios. I am taking a game that I played with someone or with my phone, I am analysing the game so see where changes in the score have occurred (those are the interesting bits in a game) and then try out variations, using engines or databases to see what else could have been done. It is a good practice to analyse the game as soon as possible, as the ideas that led to the moves are still fresh in your mind. It may seem like a drag, but commenting why you did the moves allows you to understand the game later on, when you are revisiting it. Also a good idea is to have your chess partner do the same thing and then merge the two PGNs into one, that makes clear the overall play. A chess analysis engine will comment every move with what it thought would have been the best continuation and the value of the board at that time. It makes a PGN horrible to read, because even if you put it into a visual display of the PGN, you still want to have a clean, readable PGN file. What you want to do is analyse a single move with the engine, see were it goes, then write a humanly understandable statement like "which would have been disastrous because of the sacrifice of the rook on f8, followed by Qxf7, mate".

As examples, try to compare the following blog post PGNs. My first chess game post, was annotated automatically by ChessMaster XI, which has a human readable annotation engine which I first thought was great. But look at the texts: they are either obvious or resort to stuff like "Leads to 15...Kf7 16.Bh4 h6 17.b4 Rab8 18.a4 Bxf3 19.Qxf3 Be7 20.Ng4 Bxh4 21.Nxe5+ Kg7 22.bxc5, which wins a bishopand two pawns for a bishop and a knight.". Unless used to read PGN like English (which most professional players can, btw, complete with a chess board in their heads), you see a lot of mambo jumbo. A later game post, that contained annotated moves by me, as translated from chess engine analysis.Or this one, which contains no annotations at all. Which one do you like best?

A word of warning, analysing chess games is not a short process. The advantages of the ChessMaster XI auto analysis was that you could leave it on at night, then come back in the morning and see it unfurl before you (and audio read by the chess software). To do it manually, or even let the auto analysis run at night and then decode the best move suggested by the computer and translate, takes a lot of time. I've spent an hour per game to annotate a match (two games) that two coworkers had and that I dutifully stored on my cell phone while they were playing. It was satisfying, but time wasting. A lot like blog posting... I leave you at that. Have fun dissecting chess games.

and has 0 comments
There is, of course, a long tried method of learning chess: find a bunch of people that want to play chess and go fight with them. Like that old Army line: join the Army, meet interesting people, kill them. But also obvious is that this is not the best method there is. You meet old men that play chess every day with other old men that have a lot of time on their hands and, even if they kick your ass rather quickly, you often find ways of defeating them because all their play is organic, lacking a principled structure. And that is what this post is about. I am the least principled player out there, as I have a ridiculously leaky memory and am rather greedy (I want fun games, now, not dirty principles), and therefore I get often beaten by people that should not have been able to defeat me. And, like in the old adventure games: So, you want to be a (principled) chess player - this is the quest.

First of all, don't google "how to learn chess" as you will get swamped by all the chess players that think they can teach you for money and all the software that you need to buy and all the DVDs that you absolutely need to buy. That doesn't mean that if you are patient you wouldn't eventually find what you need and, being a wannabe chess player, you should have a little patience. But if you are like me (why do I want to play chess again?) you don't have patience. Second of all, don't start with chess books. You can find zillions of them on the web, but in order to read them you will have to become very familiar with a chess board. Unlike a video, they will require to read the book with a chess board at hand and do the moves as you read. That pretty much means you can read them only in specific settings and you will feel like an idiot for reading a page a day. Books are great, but not for beginners.

Then there are some free online resources that one can use, lovely chess sites like JRobiChess.com, theChessWebsite or ChessVideos.tv, where one can get multiple opportunities to learn: grandmaster games, videos, tutorial, references. These are great, and I thoroughly recommend them. Also, look for "chess" on YouTube and you will find a plethora of people discussing and teaching chess, some of them completely for passion alone. On JRobi's site you can even find a chess study time recommendation: Opening Study – 10%, Tactical Puzzles - 20%, Endgame Study – 10%, Analyzing Your Games – 30%,Analyzing Master Games – 30% of Time. Let's analyse this plan a little bit and some very interesting ideas will emerge.

As you can see, there is time allotted for openings, only a tenth of the time, and the same amount of time for endgames. This leads to the first very important idea: endgames are (at least) just as important as openings. If you think about it, most of the amateur games, played for fun and not for some chess rating, are spectacularly inaccurate and end in quick mates. That means that most of the "go get'em" practice will teach you about openings and some of the middle game. Once in endgame territory, we are suddenly beginners again, trying to get by and failing miserably. That's why it is important to spend time with endgames. Josh Waitzkin, a US champion at chess, recommended learning endgames even more than openings. He described how, by careful study of just a few pieces on the board (two kings and a pawn, or some other piece, the usual endgame scenarios) he would emerge slightly disadvantaged in the endgame, then crush his opponent, less instructed in this most important part of a chess game. The opening and endgame learning is only a fifth of all learning time, though. Other things are even more important.

20% tactical puzzles. This is the equivalent of learning karate moves out of context. You are not fighting anybody, but you learn to hit them in a particular way. You don't have the pressure of a game, you have all the time in the world, find the best move! Both JRobi's site and Kevin's (theChessWebsite) have daily tactical puzzles. This is actually one of the few exercises that I do almost every work day: I open their sites and do those puzzles. But let me tell you something: if you open a chess book with tactical puzzles, you get some really nasty, mind boggling stuff. These online ones, at least the two I mentioned, are made for people that if they don't immediately see the answer, they start trying moves until they get them right. I should know; that hint button also gets heavy use. So this is one of the moments when I can recommend books, but start with the online ones first and try to see them through before moving.

Now comes the heavy part. We've covered a little more than a third of the time one should spend on chess learning, according to JRobi. The other two thirds are analysing games. That is it. Take the game out of the competition and clinically dissect it until you learn everything there is to learn. A major idea comes out of this, though: if you need to analyse your own games, that means someone must record them as you play. Professional and club games have score cards: they write every move they and their opponent make, the score, even small comments (you will see what I mean when we get to PGNs) and they sign each other's cards at the end of the game. I've never done it, but I imagine it is satisfying to get your adversary to sign their own defeat while you desecrate their own card with your victory scribble (heh!). I also imagine it adds to one's motivation, getting this kind of direct recognition of your effort in the game. Another option, much easily available, is to load a chess game on your mobile phone and set it to two player game. Once you make a move, you make it on the phone as well. At the end, you download the PGN file on your computer for later analysis. With a chess engine at hand and all the time in the world you can see where mistakes were made, where good moves changed the score balance and what was missed. A spectator of the game can do that for you, as well. I originally planned to write in this blog about analysing games, but it has become too long already. I will, therefore, detail that particular part in another blog post.

Of course, analysing the games played at grandmaster level shows how other people are thinking when playing the game. It's not unlike reading material relevant to your line of work. You may be smart, but you are not expecting to think of everything that may be of use to you in a specific context. You read what other wrote on the subject and gain inspiration. And when you see a giant chess player sacrifice a queen for two knights and then mating the other guy in another ten moves, you also gain humility (or you close the bloody game and go watch a movie or something). Indeed, try not to let it get to you. Grandmasters are not geniuses that can outthink you at every step, monsters that can intellectually squash you like a bug, they are people just like you that also dedicated their lives to the game of chess. Professional chess players do it for life. Expecting to understand what they did without a lot of effort is a stupid expectation. It is important to analyse their games and learn from both their mistakes and brilliant moves.

That leaves us with the endgame of this post: computer chess tutors. That is different from playing chess with your computer or pad or cell phone. That enters the first category of just playing. Computers also play differently than people, they are great at not making mistakes and punishing yours, but their design also allows for moves that would mate you in 235 moves or something like that, which is insane for any human being. Don't get me wrong, computers are great practice, but consider that if you beat them at a certain difficulty level, it is because they were programmed to let you. With the computing power available today, a cell phone would probably be able to beat Kasparov. So, back to chess tutors. I've only found one that I liked, and that is the ChessMaster XI game. Incidentally, there is where I've learned of Josh Waitzkin, as he is the voice and mind behind the game tutorials. I've also heard a lot of Fritz, but I haven't found a context where it really tutors you. Fritz is bundled with ChessBase and there are some tutorials with board, PGN games and video that use ChessBase to teach you stuff. There are probably some ChessBase based tutorials, but I haven't searched for them yet.

So, I leave you with this little research I've done, I hope it helps you get better and encourages me to heed my own advice.

and has 0 comments
I found this game on The Kenilworthian blog, a game between Nona Gaprindashvili and Alexander Blagidze. What fascinated me about this particular game is the position after 12... Nc6. Only twelve moves into the game, a position that seems normal, like something one would see when studying a particular opening, and then Bam! Can you see the bam? That is the challenge. Try to find it yourself.

I've analysed the game (very superficially) using Houdini and I've added two variations, just to see what would have happened in the more obvious situations. One question remains: what was really black's downfall? What was black's bad move and what could have been done instead of it? You can see it in the analysed PGN, but try to see it, it's a deceptively silent move.

[Event "USSR"]
[Site "USSR"]
[Date "1963.??.??"]
[Round "?"]
[White "Nona Gaprindashvili"]
[Black "Alexander Blagidze"]
[Result "1-0"]
[BlackElo "2400"]
[ECO "B23"]
[Opening "Sicilian"]
[Variation "Closed, 2...Nc6 3.Bb5 Nd4"]
[WhiteElo "2400"]
[TimeControl "600"]
[Termination "normal"]
[PlyCount "47"]
[WhiteType "human"]
[BlackType "human"]

1. e4 {(e7-e5) +0.10/16 20}
...c5 {(Ng1-f3 Nb8-c6 Nb1-c3 Ng8-f6 d2-d4 c5xd4 Nf3xd4 e7-e6 Bf1-e2 Bf8-b4 Nd4xc6 b7xc6 0-0 Qd8-a5 Qd1-d3 0-0 Bc1-e3 Bc8-b7 Be3-d4 e6-e5) -0.20/16 20}
2. Nc3 {(Nb8-c6 Ng1-f3 Ng8-f6 d2-d4 c5xd4 Nf3xd4 e7-e6 Bf1-e2 Bf8-b4 Nd4xc6 b7xc6 0-0 Qd8-a5 Qd1-d3 0-0 Bc1-e3 Bc8-b7 Ra1-d1 Bb4xc3 Qd3xc3 Qa5xc3 b2xc3 Nf6xe4 Rd1xd7 Ne4xc3) +0.22/17 20}
...Nc6 {(Ng1-f3 Ng8-f6 d2-d4 c5xd4 Nf3xd4 e7-e6 Bf1-e2 Bf8-b4 Nd4xc6 b7xc6 0-0 Qd8-a5 Qd1-d3 0-0 Bc1-e3 d7-d6 Qd3-c4 d6-d5 Qc4xc6 Bc8-d7 Qc6-b7 Bb4xc3 b2xc3 d5xe4) -0.19/16 20}
3. f4 {(d7-d6 Ng1-f3 g7-g6 Bf1-c4 Ng8-f6 d2-d3 Bf8-g7 h2-h3 0-0 0-0 a7-a6 a2-a4 Nf6-h5 Nc3-e2 e7-e6 c2-c3 Bc8-d7 Bc1-e3) 0.00/15 20}
...g6 {(g2-g4 Bf8-g7 g4-g5 a7-a6 Ng1-f3 b7-b5 d2-d3 h7-h6 a2-a4 b5-b4 Nc3-d5 h6xg5 f4xg5 e7-e6 Nd5-e3 Ng8-e7 Ne3-c4) 0.00/15 20}
4. Bb5 {(Nc6-d4 Ng1-f3 Nd4xb5 Nc3xb5 d7-d6 0-0 Bc8-d7 c2-c4 Bd7xb5 c4xb5 Qd8-b6 d2-d4 c5xd4 Qd1xd4 Qb6xd4+ Nf3xd4 Ng8-f6 e4-e5 Nf6-e4 Bc1-e3) -0.02/14 20}
...Nd4 {(Ng1-f3 Nd4xb5) +0.08/14 20}
5. Bc4 {(a7-a6 a2-a4 e7-e6 Ng1-f3 Ng8-e7 e4-e5 d7-d5 e5xd6/ep Ne7-f5 0-0 Nf5xd6 d2-d3 Bf8-g7 Nc3-e4 0-0 Bc1-e3 Nd6xc4 d3xc4 Nd4xf3+ Qd1xf3 Bg7xb2 Be3xc5 Bb2xa1 Bc5xf8) 0.00/14 20}
...Bg7 {(Ng1-f3 d7-d6 0-0 Ng8-f6 e4-e5 d6xe5 f4xe5 Nd4xf3+ Qd1xf3 Qd8-d4+ Qf3-e3 Nf6-g4 Qe3xd4 c5xd4 Bc4xf7+ Ke8-d8 Nc3-e4 Bg7xe5 h2-h3 Ng4-h2 Rf1-e1 Rh8-f8 Ne4-g5 Be5-g3) -0.05/15 20}
6. Nge2 {(d7-d6 0-0) -0.05/13 20}
...e6 {(b2-b3 a7-a6 e4-e5 d7-d5 Bc4-d3 Nd4xe2 Bd3xe2 Ng8-e7 Bc1-b2 Bc8-d7 h2-h4 Ne7-f5 h4-h5 Nf5-g3 Rh1-h3 Ng3xe2 Qd1xe2) +0.01/14 20}
7. Nxd4 {(c5xd4 Nc3-e2 d7-d6 b2-b3 Ng8-f6 Bc4-d3 Bc8-d7 Bc1-a3 Qd8-b6 h2-h3 Bd7-c6 Ne2-g3 0-0 Ba3xd6 Rf8-d8 Bd6-e7 Rd8-d7) -0.09/15 20}
...cxd4 {(Nc3-e2 d7-d6 b2-b3 Ng8-f6 Bc4-d3 Bc8-d7 Bc1-a3 Qd8-b6 h2-h3 Bd7-c6 Ne2-g3 0-0 Ba3xd6 Rf8-d8 Bd6-e7 Rd8-d7) +0.09/16 20}
8. Ne2 {(d7-d6 b2-b3 Ng8-f6 Ne2-g3 h7-h5 Bc4-d3 h5-h4 Ng3-e2 Bc8-d7 Bc1-b2 e6-e5 0-0 Bd7-c6 c2-c3 Bc6xe4 Bd3-b5+ Ke8-f8 f4xe5 d6xe5 c3xd4) -0.15/16 20}
...Qh4+ {(g2-g3 Qh4-e7 a2-a4 d7-d6 d2-d3 Ng8-h6 c2-c3 d4xc3 b2xc3 0-0 0-0 Nh6-g4 h2-h3 Ng4-f6 e4-e5 Nf6-d7 d3-d4 Nd7-b6) 0.00/16 20}
9. Ng3 {(Ng8-f6 Qd1-f3) -0.29/15 20}
...Qxf4 {(d2-d3 Qf4-f6 Rh1-f1 Qf6-e7 Qd1-f3 d7-d5 Bc4-b3 Ng8-h6 e4xd5 e6xd5+ Qf3-e2 Qe7xe2+ Ng3xe2 Nh6-g4 Bb3xd5 0-0 Bc1-f4 Ng4-e3 Bf4xe3 d4xe3 d3-d4 a7-a5 a2-a4) +0.12/16 20}
10. d3 {(Qf4-d6 0-0 Ng8-e7 Bc1-f4 Qd6-b6 a2-a4 0-0 a4-a5 Qb6-c5 Qd1-e1 d7-d6 Bf4-d2 Bc8-d7 Ng3-e2 b7-b5 a5xb6/ep a7xb6 Qe1-h4 Ra8xa1 Rf1xa1) -0.22/16 20}
...Qc7 {(0-0) +0.11/15 20}
11. O-O {(Ng8-e7 Bc1-g5 Qc7-c5 Qd1-d2 b7-b5 b2-b4 Qc5-b6 Bg5xe7 Ke8xe7 Bc4-b3 f7-f6 a2-a4 b5xa4 Bb3xa4 Bc8-b7 Qd2-f4 Ke7-e8 e4-e5 f6-f5 Ng3-e2 g6-g5) -0.21/16 20}
...Ne7 {(Bc1-g5 Qc7-c5 Qd1-d2 b7-b5 b2-b4 Qc5-b6 Bg5xe7 Ke8xe7 Bc4-b3 Bc8-b7 Qd2-f4 f7-f6 a2-a4 b5xa4 Bb3xa4 Ke7-e8 e4-e5 f6-f5 Ng3-e2 g6-g5) +0.21/16 20}
12. Bg5 {(Qc7-c5 Qd1-f3 0-0 Bg5-f6 Bg7xf6 Qf3xf6 b7-b6 a2-a3 Ne7-c6 Rf1-f5 Qc5-e7 Ng3-h5 Qe7xf6 Nh5xf6+ Kg8-g7 Rf5-f4 Nc6-e5 Ra1-f1 Ne5xc4 d3xc4 Bc8-a6 b2-b3 g6-g5 Rf4-f3) -0.10/16 20}
...Nc6 {(Ng3-h5 g6xh5 Rf1xf7 h7-h6 Bg5-f4 Bg7-e5 Qd1xh5 Ke8-d8 Qh5-h4+ Kd8-e8 Qh4-h5 Ke8-d8 Qh5-h4+) 0.00/16 20}
13. Nh5 {(g6xh5 Rf1xf7 h7-h6 Bg5-f4 Bg7-e5 Qd1xh5 Ke8-d8 Qh5-h4+ Kd8-e8 Qh4-h5 Ke8-d8 Qh5-h4+) 0.00/17 20}
...gxh5 {(Rf1xf7 h7-h6 Bg5-f4 Bg7-e5 Qd1xh5 Ke8-d8 Qh5-h4+ Kd8-e8 Qh4-h5 Ke8-d8 Qh5-h4+) 0.00/18 20}
14. Rxf7 {(h7-h6 Bg5-f4 Bg7-e5 Qd1xh5 Ke8-d8 Qh5-h4+ Kd8-e8 Qh4-h5 Ke8-d8 Qh5-h4+) 0.00/18 20}
...Qe5 {(Rf7-f5 Qe5xf5 e4xf5 0-0 f5xe6 d7xe6 Qd1xh5 Bc8-d7 Qh5-g4 Ra8-e8 Bg5-h6 Re8-e7 Bh6xg7 Re7xg7 Bc4xe6+ Kg8-h8 Qg4-h3 Bd7xe6 Qh3xe6 Rg7-f7 Qe6-b3 Rf7-e7 Ra1-f1 Rf8xf1+ Kg1xf1 Kh8-g7 Qb3-d5 h7-h6 Kf1-f2 Re7-f7+ Kf2-g3) -4.44/16 20}
(14. .. Kxf7 15. Qxh5+ Kf8 16. Rf1+ Qf4 17. Rxf4+ Bf6 18. Rxf6+ Ke7 19. Rxe6+ Kf8 20. Re8+ Kg7 21. Qh6#)
15. Rf5
(15. Rf5 Qxf5 16. exf5 O-O 17. fxe6 dxe6 18. Qxh5 Bd7 19. Qg4 Rae8 20. Bh6 Re7 21. Bxg7 Rxg7 22. Bxe6+ Kh8 23. Qh3 Bxe6 24. Qxe6 )
1-0

and has 0 comments

I've stumbled upon the Latvian Gambit and wanted to test it immediately against my colleagues. As you will see in the video, it seems a wonderfully aggressive opening, something akin to Shock and Awe, riddled with traps against your opponent. The truth is that it is an unprincipled opening, abandoning material advantage in the hope that your adversary will slip up and expecting you to have the skills to attack and defend accurately as the game progresses. I did manage to capture the queen once, but only after pointing out to my opponent that he could have forked my king and rook, so that the trap would work - he hadn't noticed. In the rest of the games, none of them running the course of the video you will see, the lack of skill on both sides of the table forced me to abandon this gambit for now, instead looking for something more principled and more appropriate for my playing level.

So here is the game from TheChessWebsite:

[youtube:2flPdsk9uz4]

I've experimented with chess engines and watched other videos about the gambit and constructed a rather complex PGN file. You can play with it here. Don't forget to click on the variations to see how the game could progress. There is even a full game there, from a video that has the link in the comment.
[Event "The Latvian Gambit"]
[Site "Siderite's Blog"]
[Date "2012.04.18"]
[Round "?"]
[White "Siderite"]
[Black "Siderite"]
[Result "0-1"]
[BlackElo "2400"]
[ECO "C63"]
[Opening "Spanish"]
[Time "13:45:38"]
[Variation "Schliemann, 4.Nc3 fxe4 5.Nxe4 Nf6"]
[WhiteElo "2400"]
[TimeControl "0+60"]
[Termination "normal"]
[PlyCount "11"]
[WhiteType "human"]
[BlackType "human"]

1. e4 e5 2. Nf3 f5 3. Nxe5 (3. Bc4 3. .. fxe4 4. Nxe5 Nf6 (4. .. Qg5 5. d4
Qxg2 6. Qh5+ g6 7. Bf7+ Kd8 8. Bxg6 Qxh1+ 9. Ke2 c6) (4. .. d5 5. Qh5+ g6
6. Nxg6 hxg6 7. Qxg6+ (7. Qxh8 Kf7 8. Qd4 Be6 9. Bb3 Nc6 10. Qe3 Bh6 11. f4
Nge7) 7. .. Kd7 8. Bxd5 Nf6 9. Nc3 Qe7) 5. Nf7 Qe7 6. Nxh8 d5 7. Be2 (7.
Bb3 Bg4 {White loses the queen, one way or another} 8. f3 exf3+ 9. Kf2 Ne4+
10. Kf1 (10. Kg1 f2+ 11. Kf1 Bxd1) 10. .. fxg2+ 11. Kxg2 Bxd1)) (3. Nc3 3.
.. Nf6 {Continue as for the king gambit (reversed)}) (3. exf5 3. .. e4 4.
Ne5 Nf6 5. Be2 d6 6. Bh5+ Ke7 7. Nf7 Qe8 8. Nxh8 Qxh5 9. Qxh5 Nxh5) (3. d4
fxe4 4. Nxe5 Nf6 5. Bg5 d6 6. Nc3 dxe5 7. dxe5 Qxd1+ 8. Rxd1 h6 9. Bxf6
gxf6) 3. .. Qf6 (3. .. Nc6 4. Qh5+
{https://www.youtube.com/watch?v=lZHGgEGM6SQ} (4. Nxc6 bxc6 5. exf5 Nf6 6.
d4 d5 7. Bd3 Bd6 8. Be3 O-O 9. Nd2 Rb8 10. Rb1 Qe7 11. O-O h5 12. Nf3 Ne4
13. Bxe4 dxe4 14. Ng5 Bxf5 15. Qxh5 Rf6 16. Nh3 Qd7 17. Bg5 g6 18. Qh4 Rf7
19. Nf4 Rh7 20. Qg3 Kg7 21. Qc3 Rbh8 22. d5+ Kg8 23. h3 {correct move dxc6}
Bxh3 24. Qxc6 (24. Nxh3 Rxh3 25. gxh3 Rxh3) 24. .. Bf5 25. Nh3 Bxh3 26. Bf6
Bxg2 {Bh2+ would have been mate in 4} (26. .. Bh2+ 27. Kxh2 Bxg2+ 28. Kg3
Rh3+ 29. Kxg2 Qg4#) 27. f4 Qxc6 28. dxc6 Bf3 29. b4 Bxf4 30. Rbe1 Rh1+ 31.
Kf2 R8h2#) 4. .. g6 5. Nxg6 (5. Nxc6 dxc6) 5. .. Nf6 6. Qh4 Rg8 7. Nxf8 Rg4
8. Qh6 Rxe4+ 9. Kd1 (9. Be2 Nd4 10. Nc3 Nxe2 11. Nxe2 Qe7) 9. .. Ng4) (3.
.. Bc5 4. exf5 Bxf2+ 5. Kxf2 Qh4+ 6. Kf3 (6. Kg1 6. .. Qd4#) (6. Ke2 6. ..
Qe4+) (6. g3 Qd4+ 7. Kg2 Qxe5 8. Nc3 Qxf5 9. Bd3 Qf7 10. b3 Nf6 11. Re1+
Kd8 12. Qf3 Nc6 13. Ne4 Qe7 14. Nxf6 Qxf6 15. Qxf6+ gxf6 16. Bb2) 6. .. Nf6
(6. .. Ne7 7. Nc3 d6 8. g3 Qh5+ 9. g4 Qh4 10. Qe1 Qxe1 11. Bb5+ Nbc6 (11.
.. c6 12. Rxe1 cxb5 13. Nd3 Nc6 14. Nxb5) 12. Rxe1 dxe5 13. Rxe5 O-O 14.
Re4 h5 15. h3 Nxf5 16. Bc4+ Kh7 17. gxf5 Bxf5 18. Kg2 Bxe4+ 19. Nxe4 Rae8)
(6. .. b5)) (3. .. fxe4 4. Qh5+ g6 5. Nxg6 Nf6 6. Qe5+) (3. .. d6 4. Qh5+
g6 5. Nxg6 Nf6 6. Qh4) 4. Nc4 (4. d4 d6 5. Nc4 fxe4 6. Nc3 Qg6 7. f3 exf3
8. Qxf3 Nc6 9. Bd3 Qg4) 4. .. fxe4 5. Nc3 Qf7 (5. .. Qg6 6. d3 exd3 7. Bxd3
Qxg2 8. Be4 Qh3 {At this point black has not developed and is lost}) 6. d4
(6. Nxe4 d5) 0-1



Update: Here is another analysis of the Latvian Gambit, by Abby Marshall.
Roman Dzindzichashvili considers the Latvian gambit a sign of mental illness.
Chessexplained also has a video about it.

and has 0 comments
It was a while since I've written about chess. After an initial burst of enthusiasm, I was left with no friends to play with and it all kind of flopped. However, I've met several people at the office that are interested and even passionate about chess. So it may be that many nice chess blog posts could be coming.

This one is about the Bryntse Gambit. I wanted to write about it because it is relatively unknown. Here is the short version of it: 1. e4 c5 2. f4 d5 3. Nf3 dxe4 4. Ng5 Nf6 5. Bc4 Bg4 6. Bxf7+ Kd7 7. Qxg4+ Nxg4 8. Be6+

At this point, the king has only two reasonable options: Kc7 or Kc6. I've continued the game a few moves from there using the Rybka and Houdini chess engines. The extended game with the respective variations is here: 1. e4 c5 2. f4 d5 3. Nf3 dxe4 4. Ng5 Nf6 5. Bc4 Bg4 6. Bxf7+ (6. Be2 6. .. Bf5 7. g4 Bd7 8. Nc3 Bc6 9. Bc4 e6 10. Qe2 h6 11. Ngxe4 Nxe4 12. Nxe4 Qh4+ 13. Kd1) (6. Be2 Bxe2 7. Qxe2 Nc6 8. Na3 Nd4 9. Qc4 Qd5 10. Qxd5 Nxd5 11. c3 Ne6 12. Nxe6 fxe6) 6. .. Kd7 7. Qxg4+ Nxg4 8. Be6+ Kc7 (8. .. Kc6 9. Bxg4 g6 10. Nc3 Bg7 11. Ncxe4 e5 12. O-O exf4 13. d3 Be5 14. Ne6 Qh4 15. h3) 9. Bxg4 Qe8 10. Ne6+ Kb6 11. Na3 a6 12. Nc4+ Ka7 13. b3 Nc6 14. Bb2 h5 15. Bh3 Qf7 16. O-O-O Rh6 17. f5 b6 18. Rhf1 Nd8 19. g3 Nxe6 20. fxe6 Qg8 21. Bf5 Rxe6 22. Bxe6 Qxe6 *

The article that prompted this post can be found here: Bryntse Gambit Revisited

What I find interesting about this gambit is the voluntary sacrifice of the queen in order to gain a positional advantage. It is true, the black king is harassed all over the board and left with almost no safety, the black pieces are undeveloped and the pawns are scattered in three islands, but white has no queen anymore, exchanged for a knight and a bishop. I wish I was confident enough to play this gambit and know what I am doing after losing the queen. Just in case you were wondering what could one do if suddenly afraid of going on with the Bryntse, I've added two possible continuations where the queen is not sacrificed.

Finally I have found the chess game viewer I wanted in order to publish my own PGN games in the blog! The name is Chess Tempo PGN Viewer and it is well written, fast, supports annotations and variations and is very configurable. Most of all, it is all Javascript (sorry for the occasional Java prompts. I almost caved in and did what I swore I wouldn't ever do: have Java applets in my blog).

Please tell me if you have issues with the new chess viewer.

and has 0 comments
Luckily for me, some chess videos are for beginners like me. Here is one from OnlineChessLessons, describing a simple, clear opening called The Stonewall Attack. After watching the video I played a game with my trusted Nokia phone and managed to create a game starting with this opening. I then analysed it using chess engines Houdini and Rybka and annotated it manually. Check it out, including the variations.

Video first:

Make sure you also follow the article attached to the video.

And now my game:
[Event "29/10/2011 1:08:49 pm"]
[Date "29/10/2011"]
[White "Siderite"]
[Black "Nokia Easy5"]
[Result "1-0"]
[ECO "D05"]
[Opening "Colle"]
[Variation "5.c3 Nc6 6.Nbd2 Bd6 7.O-O O-O"]
[TimeControl "600"]
[Termination "normal"]
[PlyCount "59"]
[WhiteType "human"]
[BlackType "computer"]


1.d4 e6 2.e3 d5 3.Bd3 Bd6 4.f4 Nf6 5.Nd2 O-O 6.Ngf3 c5 7.c3 Nc6 8.O-O c4 9.Bc2 Ng4
{At this point, the engines suggest Bxh7, a classic sacrifice.}
10.Qe2
{However, I moved the queen to defend e3.}
( 10.Bxh7+ Kxh7 11.Ng5+ Kg8 12.Qxg4
{This variation wins the h7 pawn, but moves away from the spirit of the original game.}
12...Qf6 13.e4 ) 10...f5
{At this point, engines suggest Ne5, followed by knight exchange from black.}
11.h3
{I chose to shoo the knight away, but weakening g3, where the knight would love to come later.}
( 11.Ne5 Ngxe5 12.dxe5 Be7 13.b4 ) 11...Nf6 12.Ne5 Qa5 13.g4 fxg4 14.hxg4 Qb6
{engines would want me to attack the knight on f6 before moving the rook out.}
15.Rf2 ( 15.g5 Bxe5 16.dxe5 Ne8 17.Kg2 g6 18.b3
{Engines decide to try a queen side attack as well, in order to weaken the black pawn chain. I was not interested in that.}
) 15...h6
{engines suggest attacking the rook and with Ng6, which is a natural attacking move and a lovely outpost.}
16.Rh2 ( 16.Ng6 Rf7 17.g5 Nh7 18.Qh5 Ne7 19.Nxe7+ Rxe7 20.gxh6 Nf8 21.Rg2 Qc7 22.Qg5
{However at this point the game moves into queen side attacks and a slower attacking pace.}
) 16...Ne7 17.g5 hxg5 18.fxg5 Bxe5 19.dxe5 Nd7
{engines suggest now a beautiful move: Rh8, followed by a munching of black pieces or/and mate. Make sure you check out the variation.}
20.Nf3 ( 20.Rh8+ Kf7 ( 20...Kxh8
{Taking the rook leads to a quick mate.}
21.Qh5+ Kg8 22.Bh7+ Kh8 23.Bg6+ Kg8 24.Qh7# ) 21.Qh5+ g6 22.Bxg6+ Nxg6 23.Qh7+ Ke8 24.Qxg6+ Kd8 25.Rxf8+ Nxf8 26.Qf6+ Ke8 27.Nf3
{Try this variation on a chess engine to see it to the end. White is only one pawn up, but it is a passed one. The king is safe as well.}
) 20...Rb8 21.g6 Nf5 22.Rh3 Nh6 23.Kh1
{I felt like the pin on e3 was annoying and stopping me from using the black bishop. The engines recommend moving Qh2 instead, which is much better.}
( 23.Qh2 Nc5 24.Ng5 Ne4 25.Bxe4 dxe4 26.Nh7 Qc7 ( 26...Rd8
{If you wanted to know why black did not move the rook when attacked by the knight, follow this variation through.}
27.Rxh6 Rd1+ 28.Kg2 Qd8 29.Nf6+ Kf8 30.Rh8+ Ke7 31.Qh4 Rd2+ 32.Bxd2 b6 33.a4 Qxd2+ 34.Kh1 Qe1+ 35.Rxe1 Bb7 36.Rxb8 Bc8 37.Rxc8
gxf6 38.Qh7# ) 27.Nxf8 Qd8 28.Rxh6 Qg5+ 29.Kf2 Qxh6 30.Qxh6 gxh6 31.Nh7
{At this point white is a knight up, but what a boring continuation.}
) 23...Nf5 24.Qh2 Ng3+
{Engines suggest I move the king and concentrating on the attack, but I took the knight with the rook.}
25.Rxg3 ( 25.Kg1 Qxe3+ 26.Bxe3 Ne2+ 27.Kg2 Nf4+ 28.Bxf4 Rf5 29.Rh8# ) 25...Re8 26.Qh7+ Kf8 27.e4
{At this point, a mate in 8 is found.}
27...Qc7
{But with this move, mate will happen in 4.}
28.Bg5 Nf6 29.exf6 Rd8 30.Qh8# 1-0


Enjoy!

P.S. I am currently looking for a method of displaying the game as I want it on the blog: dynamic, with annotation and variation support, preferably something that is not Java and optimally something that reads the PGN from a span and replaces it with a nice looking chess interface. Right now, the usual game engine fails for some reason I need to analyse.

and has 0 comments

The complete title of the book is How Life Imitates Chess: Making the Right Moves, from the Board to the Boardroom, which is a mouthful, but very precise. It does explain how principles of chess, economics and politics apply in all three fields and how Garry Kasparov has evolved from chess player to world champion and, nowadays, into a political anti-Putin figure.

If you ask me, abandoning chess to get into business and worse, politics, it's a complete loss. However I do understand the guy, he got bored. Someday I may abandon computer programming.

Back to the book, though, it felt a lot like The Art of Learning, also written by a brilliant chess player (who incidentally also abandoned chess... hmm). It was more precise, most logical, though, looking at things from a more of a clinical perspective. I would have wanted to learn more about Kasparov's relationship with Karpov, for example, since he is always calling him his nemesis, but never says anything about how he felt about the guy.

This book is peppered with good advice, historic comparisons and great quotes from chess players and great men. Also, short descriptions of the relationship between famous "chess pairs" are giving the book an extra chess dimension. All in all I recommend it highly, although it felt more like a useful reference than a soul book like The Art of Learning.

Short version: here is the link to the uploaded .NET regular expression. (look in the comment for the updated version)

I noticed that the javascript code that I am using to parse PGN chess games and display it is rather slow and I wanted to create my own PGN parser, one that would be optimal in speed. "It should be easy", I thought, as I was imagining getting the BNF syntax for PGN, copy pasting it into a parser generator and effortlessly getting the Javascript parser that would spit out all secrets of the game. It wasn't easy.

First of all, the BNF notation for Portable Game Notation was not complete. Sure, text was used to explain the left overs, but there was no real information about it in any of the "official" PGN pages or Wikipedia. Software and chess related FTPs and websites seemed to be terrible obsolete or missing altogether.

Then there was the parser generator. Wikipedia tells me that ANTLR is pretty good, as it can spew Javascript code on the other end. I downloaded it (a .jar Java file - ugh!), ran it, pasted BNF into it... got a generic error. 10 minutes later I was learning that ANTLR does not support BNF, but only its own notation. Searches for tools that would do the conversion automatically led me to smartass RTFM people who explained how easy it is to do it manually. Maybe they should have done for me, then.

After all this (and many fruitless searches on Google) I decided to use regular expressions. After all, it might make a lot of sense to have a parser in a language like C#, but the difference in speed between a Javascript implementation and a native regular expression should be pretty large, no matter how much they optimize the engine. Ok, let's define the rules of a PGN file then.

In a PGN file, a game always starts with some tags, explaining what the event is, who played, when, etc. The format of a tag is [name "value"]. There are PGN files that do not have this marker, but then there wouldn't be more than one game inside. The regular expression for a tag is: (\[\s*(?<tagName>\w+)\s*"(?<tagValue>[^"]*)"\s*\]\s*)+. Don't be scared, it only means some empty space maybe, then a word, some empty space again, then a quoted string that does not contain quotes, then some empty space again, all in square brackets and maybe followed by more empty space, all of this appearing at least once.

So far so good, now comes the list of moves. The simplest possible move looks like 1. e4, so a move number and a move. But there are more things that can be added to a move. For starters, the move for black could be following next (1. e4 e5) or a bit after, maybe if there are commentaries or variations for the move of the white player (1... e5). The move itself has a variety of possible forms:
  • e4 - pawn moved to e4
  • Nf3 - knight moved to f3
  • Qxe5 - queen captured on e5
  • R6xf6 - the rook on the 6 rank captured on f6
  • Raa8 - The rook on file a moved to a8
  • Ka1xc2 - the knight at a1 captured on c2
  • f8=Q - pawn moved to f8 and promoted to queen
  • dxe8=B - pawn on the d file captured on e8 and promoted to bishop


There is more information about the moves. If you give check, you must end it with a + sign, if you mate you end with #, if the move is weird, special, very good, very bad, you can end it with stuff like !!, !?, ?, !, etc which are the PGN version of WTF?!. And if that is not enough, there are some numbers called NAG which are supposed to represent a numeric, language independent, status code. Also, the letters that represent the pieces are not language independent, so a French PGN might look completely different from an English one. So let's attempt a regular expression for the move only. I will not implement NAG or other pieces for non-English languages: (?:[PNBRQK]?[a-h]?[1-8]?x?[a-h][1-8](?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?). I know, scary. But it means a letter in the list PNBRQK, one for each possible type of chess piece, which may appear or it may not, then a letter between a and h, which would represent a file, then a number between 1 and 8 which would represent a rank. Both letter and number might not appear, since they represent hints on where the piece that moved was coming from. Then there is a possible letter x, indicating a capture, then, finally, the destination coordinates for the move. There follows an equal sign and another piece, in case of promotion. An astute reader might observe that this also matches a rook that promotes to something else, for example. This is not completely strict. If this long expression is not matched, maybe something that looks like OO, O-O, OOO or O-O-O could be matched, representing the two possible types of castling, when a rook and a king move at the same time around each other, provided neither had not moved yet. And to top it off, we allow for some empty space and the characters ! and ? in order to let chess annotators express their feelings.

It's not over yet. PGN notation allows for commentaries, which are bits of text inside curly brackets {what an incredibly bad move!} and also variations. The variations show possible outcomes from the main branch. They are lists of moves that are enclosed in round brackets. The branches can be multiple and they can branch themselves! Now, this is a problem, as regular expressions are not recursive. But we only need to match variations and then reparse them in code when found. So, let's attempt a regular expression. It is getting quite big already, so let's add some tokens that can represent already discussed bits. I will use a @ sign to enclose the tokens. Here we go:
  • @tags@ - we will use this as a marker for one or more tags
  • @move@ - we will use this as a marker for the complicated move syntax explained above
  • (?<moveNumber>\d+)(?<moveMarker>\.|\.{3})\s*(?<moveValue>@move@)(?:\s*(?<moveValue2>@move@))?\s* - the move number, 1 or 3 dots, some empty space, then a move. It can be followed directly by another move, for black. Lets call this @line@
  • (?:\{(?<varComment>[^\}]*?)\}\s*)? - this is a comment match, something enclosed in curly brackets; we'll call it @comment@
  • (?:@line@@variations@@comment@)* - wow, so simple! Multiple lines, each maybe followed by variations and a comment. This would be a @list@ of moves.
  • (?<endMarker>1\-?0|0\-?1|1/2\-?1/2|\*)?\s* - this is the end marker of a game. It should be there, but in some cases it is not. It shows the final score or an unfinished match. We'll call it @ender@
  • (?<pgnGame>\s*@tags@@list@@ender@) - The final tokenised regular expression, containing an entire PGN game.


But it is not over yet. Remember @variations@ ? We did not define it and with good reason. A good approximation would be (?:\((?<variation>.*)\)\s*)*, which defines something enclosed in parenthesis. But it would not work well. Regular expressions are greedy by default, so it would just get the first round bracket and everything till the last found in the file! Using the non greedy marker ? would not work either, as the match will stop after the first closing bracket inside a variation. Comments might contain parenthesis characters as well.

The only solution is to better match a variation so that some sort of syntax checking is being performed. We know that a variation contains a list of moves, so we can use that, by defining @variations@ as (?:\((?<variation>@list@)\)\s*)*. @list@ already contains @variations@, though, so we can do this a number of times, to the maximum supported branch depth, then replace the final variation with the generic "everything goes" approximation from above. When we read the results of the match, we just take the variation matches and reparse them with the list subexpression, programatically, and check extra syntax features, like the number of moves being subsequent.

It is no wonder that at the Regular Expressions Library site there was no expression for PGN. I made the effort to upload it, maybe other people refine it and make it even better. Here is the link to the uploaded regular expression. The complete regular expression is here:
(?<pgnGame>\s*(?:\[\s*(?<tagName>\w+)\s*"(?<tagValue>[^"]*)"\s*\]\s*)+(?:(?<moveNumber>\d+)(?<moveMarker>\.|\.{3})\s*(?<moveValue>(?:[PNBRQK]?[a-h]?[1-8]?x?[a-h][1-8](?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?)(?:\s*(?<moveValue2>(?:[PNBRQK]?[a-h]?[1-8]?x?[a-h][1-8](?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?))?\s*(?:\(\s*(?<variation>(?:(?<varMoveNumber>\d+)(?<varMoveMarker>\.|\.{3})\s*(?<varMoveValue>(?:[PNBRQK]?[a-h]?[1-8]?x?[a-h][1-8](?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?)(?:\s*(?<varMoveValue2>(?:[PNBRQK]?[a-h]?[1-8]?x?[a-h][1-8](?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?))?\s*(?:\((?<varVariation>.*)\)\s*)?(?:\{(?<varComment>[^\}]*?)\}\s*)?)*)\s*\)\s*)*(?:\{(?<comment>[^\}]*?)\}\s*)?)*(?<endMarker>1\-?0|0\-?1|1/2\-?1/2|\*)?\s*)


Note: the flavour of the regular expression above is .Net. Javascript does not support named tags, the things between the angle brackets, so if you want to make it work for js, remove ?<name> constructs from it.

Now to work on the actual javascript (ouch!)

Update: I took my glorious regular expression and used it in a javascript code only to find out that groups in Javascript do not act like collections of found items, but only the last match. In other words, if you match 'abc' with (.)* (match as many characters in a row, and capture each character in part) you will get an array that contains 'abc' as the first item and 'c' as the second. That's insane!

Update: As per Matty's suggestion, I've added the less used RxQ move syntax (I do have a hunch that it is not complete, for example stuff like RxN2, RxNa or RxNa2 might also be accepted, but they are not implemented in the regex). I also removed the need for at least one PGN tag. To avoid false positives you might still want to use the + versus the * notation after the tagName/tagValue construct. The final version is here:

(?<pgnGame>\s*(?:\[\s*(?<tagName>\w+)\s*"(?<tagValue>[^"]*)"\s*\]\s*)*(?:(?<moveNumber>\d+)(?<moveMarker>\.|\.{3})\s*(?<moveValue>(?:[PNBRQK]?[a-h]?[1-8]?x?(?:[a-h][1-8]|[NBRQK])(?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?)(?:\s*(?<moveValue2>(?:[PNBRQK]?[a-h]?[1-8]?x?(?:[a-h][1-8]|[NBRQK])(?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?))?\s*(?:\(\s*(?<variation>(?:(?<varMoveNumber>\d+)(?<varMoveMarker>\.|\.{3})\s*(?<varMoveValue>(?:[PNBRQK]?[a-h]?[1-8]?x?(?:[a-h][1-8]|[NBRQK])(?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?)(?:\s*(?<varMoveValue2>(?:[PNBRQK]?[a-h]?[1-8]?x?(?:[a-h][1-8]|[NBRQK])(?:\=[PNBRQK])?|O(-?O){1,2})[\+#]?(\s*[\!\?]+)?))?\s*(?:\((?<varVariation>.*)\)\s*)?(?:\{(?<varComment>[^\}]*?)\}\s*)?)*)\s*\)\s*)*(?:\{(?<comment>[^\}]*?)\}\s*)?)*(?<endMarker>1\-?0|0\-?1|1/2\-?1/2|\*)?\s*)

The Regexlib version has also been updated in a comment (I don't know how - or if it is possible - to edit the original).

and has 0 comments
Here is another chess game, which is not really remarkable as a chess game, but as my perception of it was. I thought I played on par with the cell phone up until the end where I usually falter and this time the cell did. After ChessMaster's analysis, I've realised that the AI made huge mistakes, as have I. I chose to play black because I usually play white and whenever I play as black I am at a loss at what to do, so the few games I've played lately with my cell or PDA were as black.



Also, in this post I am using a new style of annotation. ChessMaster saves PGN files in two ways: with analysis or with auto annotation, not both. I find the auto annotations very helpful when they explain how the game could have played, but not so helpful when I move a piece and it says I moved a piece or some other obvious thing like that. The analysis is more cryptic, but very helpful in understanding what the computer thought. Therefore I took the annotations I found useful and added them to the analysis file. I hope this is more helpful for the reader.



At the end you will see me play really strange, and that is because I was using my queen as a rook only while checkmating. The uncommented variation is the short end.



Well, I just removed the variation and the pointless mate. Just imagine the cell phone gained consciousness and resigned after I queened the pawn :) Also, if you see the post loading really slow, you should wait for it to end. I will try to optimize the chess board plugin when I have the time.





[Event "30/8/2011 9:10:18 am"]

[Site ""]

[Date "2011.8.30"]

[Round ""]

[White "Nokia Easy5"]

[Black "Siderite"]

[TimeControl "-"]

[Result "0-1"]

[ECO " "]



1.e4

{Book.

B00 King's Pawn Opening. The King's Pawn opening move is both popular and logical. It controls the center, opens lines

for both the Queen and the Bishop, and usually leads to an open game in which tactics, rather than slow maneuvering,

predominates.}

1...e5

{Book.

C20 King's Pawn Game. Black responds symmetrically, making a direct challenge to the central squares.}

2.Bc4

{Score: 0.10 2...Nf6 3.Nc3 Nc6 4.Nf3 Nxe4 5.O-O Be7 6.Nxe4 d5 7.d4 O-O 8.Be3 dxc4 9.dxe5 (Time = 1:04, Depth = 2/12)

C23 Bishop's Opening. The Bishop's opening is an attempt to capitalize on the inherent weakness of f7. But centuries of

analysis have shown that this natural move is no stronger when played earlier than later.}

2...b6

{Score: 0.91 3.d4 Bb7 4.dxe5 Bxe4 5.Nf3 Nc6 6.O-O Bb4 7.Nbd2 Bf5 8.Re1 (Time = 0:42, Depth = 1/11)

Out of Opening Book. c6 would have been in the Bishop's Opening opening line. Slightly better is

Nf6.

}

3.Nf3

{Score: 0.63 3...Nc6 4.O-O Bb7 5.Nc3 Bc5 6.d4 exd4 7.Nd5 Nge7 8.Bf4 d6 (Time = 0:42, Depth = 1/11)}

3...Nc6

{Score: 0.69 4.d4 exd4 5.O-O Bb7 6.c3 Nf6 7.e5 d5 8.Bb5 Ne4 9.cxd4 (Time = 0:38, Depth = 1/11)}

4.Nc3

{Score: 0.57 4...Bc5 5.O-O Bb7 6.d3 Nf6 7.a3 O-O 8.b4 Bd6 9.Be3 a6 (Time = 0:38, Depth = 1/11)}

4...Bb7

{Score: 0.54 5.d3 Bc5 6.Ng5 Nh6 7.Qh5 Qf6 8.Nf3 Qg6 9.Qxg6 hxg6 10.O-O (Time = 0:43, Depth = 1/11)}

5.d4

{Score: 0.52 5...exd4 6.Nxd4 Ne5 7.Bd5 c6 8.Bb3 Bc5 9.Nf5 d5 10.exd5 Kf8 (Time = 0:39, Depth = 1/11)}

5...d6

{Score: 1.07 6.O-O a6 7.dxe5 dxe5 8.Bg5 Nge7 9.Qxd8+ Rxd8 10.Rad1 h6 11.Nd5 Rd7 (Time = 0:46, Depth = 1/11)}

6.Ng5

{Score: 1.03 6...Nh6 7.d5 Nd4 8.Nf3 Nxf3+ 9.Qxf3 a6 10.O-O b5 11.Bd3 Be7 12.Bxh6 gxh6 13.Qf5 (Time = 0:29, Depth = 2/12)

}

6...Nh6

{Score: 0.92 7.d5 Ne7 8.Bb5+ c6 9.dxc6 Nxc6 10.Nf3 Ng8 11.O-O a6 12.Bg5 Nf6 13.Bc4 (Time = 0:59, Depth = 2/12)}

7.dxe5

{Score: 0.65 7...Nxe5 8.Be2 Be7 9.f4 Bxg5 10.fxg5 Ng8 11.O-O Ne7 12.Bf4 N7g6 13.Bb5+ c6 14.Bxe5 Nxe5 (Time = 1:00,

Depth = 2/12)}

7...dxe5

{Score: 0.73 8.Be3 Bb4 9.Qh5 O-O 10.O-O Bxc3 11.bxc3 Qf6 12.Rad1 Rad8 13.Nf3 Rd6 (Time = 0:39, Depth = 1/11)}

8.Qh5

{Score: 0.81 8...g6 9.Qh3 Qc8 10.Qf3 f5 11.Ne6 Nd4 12.Nxd4 exd4 13.Nd5 Nf7 14.O-O Ne5 (Time = 1:02, Depth = 2/12)}

8...g6

{Score: 0.81 9.Qh3 Qc8 10.Qf3 f5 11.Ne6 Nd4 12.Nxd4 exd4 13.Nd5 Nf7 14.O-O Ne5 (Time = 0:49, Depth = 1/11)}

9.Qd1

{Score: -0.15 9...Qxd1+ 10.Nxd1 Nd4 11.Ne3 Be7 12.h4 b5 13.Bd3 O-O-O 14.c3 Nb3 15.axb3 Rxd3 16.Rxa7 (Time = 0:57, Depth

= 2/12)

Slightly better is Qh3.}

9...Bg7

{Score: 0.49 10.O-O O-O 11.Nf3 Ng4 12.Bg5 Bf6 13.Bd2 Bg7 14.Qe2 a6 15.Rad1 Nb4 (Time = 0:58, Depth = 2/12)}

10.Nd5

{Score: 0.20 10...Na5 11.Bd3 O-O 12.O-O Nf5 13.Nf3 Nd6 14.b3 Nc6 15.Bg5 f6 (Time = 1:42, Depth = 1/11)}

10...O-O

{Score: 0.18 11.Nf3 Qd6 12.Bg5 Kh8 13.O-O f5 14.Nc3 Qb4 15.Qd3 Qxb2 (Time = 0:39, Depth = 1/10)}

11.c3

{Score: -0.27 11...Na5 12.Bf1 Nf5 13.b4 h6 14.Nf3 Bxd5 15.exd5 e4 16.Nd4 Nxd4 17.cxd4 Nb7 (Time = 2:17, Depth = 2/13)}

11...Ne7

{Score: 0.24 12.Nxe7+ Qxe7 13.O-O c6 14.Be3 Rad8 15.Qe2 b5 16.Bb3 Kh8 17.Rad1 Rfe8 18.Nf3 (Time = 0:49, Depth = 2/12)

}

12.O-O

{Score: 0.06 12...Nxd5 13.Bxd5 Bxd5 14.exd5 Qd7 15.Qd3 c6 16.d6 f5 17.Qc4+ Nf7 18.Ne6 Rfe8 (Time = 0:58, Depth = 2/12)}



12...Nxd5

{Score: 0.01 13.Bxd5 Bxd5 14.exd5 Qd7 15.c4 Nf5 16.Re1 c6 17.Nf3 Rae8 18.Bg5 e4 (Time = 0:41, Depth = 2/12)}

13.Bxd5

{Score: 0.01 13...Bxd5 14.exd5 Nf5 15.Ne4 Nd6 16.f3 a6 17.Qe2 h6 18.Be3 f5 19.Nxd6 Qxd6 (Time = 0:58, Depth = 2/13)}

13...Bxd5

{Score: 0.01 14.exd5 Nf5 15.Ne4 Nd6 16.f3 a6 17.Qe2 h6 18.Be3 f5 19.Nxd6 Qxd6 (Time = 0:49, Depth = 2/12)}

14.Qxd5

{Score: -0.02 14...Qxd5 15.exd5 Nf5 16.Ne4 Nd6 17.Nxd6 cxd6 18.b3 Rfc8 19.Bd2 b5 20.Rac1 Rab8 21.c4 bxc4 22.Rxc4 Rxc4

23.bxc4 (Time = 0:57, Depth = 2/13)}

14...Qe7

{Score: 0.39 15.h3 Rad8 16.Qb3 c5 17.Be3 Qc7 18.Qa4 Qd7 19.Qxd7 Rxd7 20.Nf3 Rfd8 21.Bxh6 Bxh6 22.Nxe5 (Time = 0:58,

Depth = 2/12)}

15.Re1

{Score: 0.16 15...Rad8 16.Qb5 Rd6 17.Nf3 Rfd8 18.Qb3 Ng4 19.Bg5 Bf6 20.Bxf6 Nxf6 21.Qb5 (Time = 0:56, Depth = 2/12)}

15...Rad8

{Score: 0.15 16.Qb5 Rd6 17.Nf3 Rfd8 18.Be3 c5 19.Qb3 Ng4 20.Bg5 Bf6 21.h4 Qd7 (Time = 1:01, Depth = 2/12)}

16.Qb7

{Score: 0.14 16...a5 17.Nf3 Qd6 18.c4 Ng4 19.Qd5 Qb4 20.Qc6 Rd3 21.a3 Qd6 22.Qa4 (Time = 0:54, Depth = 2/12)}

16...a5

{Score: 0.13 17.Nf3 Qd6 18.Qa6 f6 19.Bxh6 Bxh6 20.Qc4+ Kh8 21.Qb3 Qc6 22.Rad1 Rxd1 23.Qxd1 Re8 (Time = 0:50, Depth =

2/12)}

17.h3

{Score: -0.12 17...f5 18.Qc6 f4 19.Qe6+ Rf7 20.Qxe7 Rxe7 21.b3 Nf7 22.Nf3 c6 23.Bb2 Red7 24.c4 b5 (Time = 1:06, Depth =

2/13)}

17...Rb8

{Score: 0.47 18.Qd5 Rbd8 19.Qb3 Kh8 20.Be3 f5 21.Ne6 f4 22.Nxf8 fxe3 23.Ne6 exf2+ 24.Kxf2 (Time = 0:35, Depth = 2/12)

}

18.Qc6

{Score: 0.34 18...Rfd8 19.Be3 Qd7 20.Qc4 b5 21.Qe2 f5 22.Rad1 Qc6 23.Qc2 a4 24.b3 Ra8 (Time = 1:00, Depth = 2/13)}

18...Rfd8

{Score: 0.34 19.Be3 Qd7 20.Qc4 b5 21.Qe2 f5 22.Rad1 Qc6 23.Qc2 a4 24.b3 b4 (Time = 1:07, Depth = 2/12)

Seizes the open file.}

19.Qb5

{Score: 0.06 19...f6 20.Nf3 Nf7 21.Be3 Qd7 22.Qb3 a4 23.Qc2 Qc6 24.b3 Nd6 25.Bd2 Ra8 26.Rad1 axb3 27.axb3 (Time = 1:31,

Depth = 2/14)}

19...Kh8

{Score: 0.34 20.Nf3 f6 21.Be3 Nf7 22.Rad1 Nd6 23.Qc6 h6 24.b3 Kh7 25.Qa4 c5 (Time = 0:59, Depth = 2/12)}

20.Be3

{Score: 0.17 20...f5 21.exf5 Nxf5 22.Bf4 Rf8 23.Rxe5 Bxe5 24.Bxe5+ Ng7 25.Re1 Rf5 26.Nf3 Rd8 27.Qc4 (Time = 0:58, Depth

= 2/13)}

20...Ng8

{Score: 0.58 21.Qb3 Rf8 22.Nf3 h6 23.Qb5 Rfd8 24.Rad1 Qe6 25.c4 f5 26.exf5 Qxf5 (Time = 0:40, Depth = 2/12)}

21.Qc4

{Score: 0.59 21...Rf8 22.Nf3 c5 23.Rad1 Nf6 24.Bg5 b5 25.Qe2 Rfc8 26.Bxf6 Bxf6 27.Qd3 (Time = 0:46, Depth = 2/12)}

21...Rf8

{Score: 0.57 22.Rad1 Nf6 23.Nf3 c5 24.Bg5 b5 25.Qe2 Rfc8 26.Rd5 Qe6 27.Rxe5 Qxa2 (Time = 1:01, Depth = 2/12)}

22.Rad1

{Score: 0.53 22...Bh6 23.h4 c5 24.Qb5 Nf6 25.c4 Qc7 26.Ne6 fxe6 27.Bxh6 Rfd8 28.f3 (Time = 0:59, Depth = 2/12)

Takes control of the open file.}

22...Nf6

{Score: 0.57 23.f4 Nh5 24.fxe5 Bxe5 25.Rf1 f6 26.Ne6 Rfe8 27.Nd4 Bxd4 28.Bxd4 (Time = 0:58, Depth = 1/11)}

23.Rf1

{Score: 0.28 23...h6 24.Nf3 c5 25.Rfe1 Kg8 26.Qb3 Rfe8 27.c4 Nxe4 28.Bxh6 Nxf2 29.Kxf2 Bxh6 30.Rxe5 (Time = 1:03, Depth

= 2/13)}

23...h6

{Score: 0.28 24.Nf3 c5 25.Rfe1 Kg8 26.Qb3 Rfe8 27.c4 Nxe4 28.Bxh6 Nxf2 29.Kxf2 Bxh6 30.Rxe5 (Time = 0:36, Depth =

2/12)}

24.Nf3

{Score: 0.24 24...c5 25.Rfe1 Rfe8 26.Qb3 Qb7 27.Qc2 Kg8 28.Bc1 Qc7 29.c4 Rbd8 30.Be3 (Time = 0:59, Depth = 2/12)}

24...Kh7

{Score: 0.33 25.b4 Qe6 26.Qxe6 fxe6 27.bxa5 Nxe4 28.axb6 Rf7 29.Rfe1 cxb6 30.Bd2 Nxd2 31.Rxd2 (Time = 0:49, Depth =

1/11)}

25.Qc6

{Score: 0.33 25...Rfd8 26.c4 Rd6 27.Rxd6 Qxd6 28.Qxd6 cxd6 29.Nd2 b5 30.f3 bxc4 31.Nxc4 d5 32.Ba7 Rb7 (Time = 0:36,

Depth = 2/12)}

25...Rbd8

{Score: 0.54 26.c4 Rd6 27.Rxd6 Qxd6 28.Qxd6 cxd6 29.Nd2 Nd7 30.Nb1 f5 31.exf5 gxf5 32.Rd1 f4 (Time = 0:59, Depth =

2/12)}

26.a4

{Score: 0.33 26...Rc8 27.Rd2 Rfe8 28.Rfd1 Qe6 29.Qxe6 Rxe6 30.Rd8 Rxd8 31.Rxd8 Re7 32.Nd2 Re8 (Time = 1:11, Depth =

2/12)}

26...Rd6

{Score: 0.51 27.Rxd6 Qxd6 28.Qxd6 cxd6 29.Nd2 Rb8 30.Rd1 b5 31.axb5 Rxb5 32.b3 d5 33.exd5 Nxd5 34.c4 Nxe3 35.fxe3 Rb7

36.c5 (Time = 1:01, Depth = 3/15)}

27.Qc4

{Score: 0.12 27...Kg8 28.Rfe1 Ra8 29.Rxd6 Qxd6 30.Rb1 Ra7 31.b3 c5 32.b4 axb4 33.cxb4 (Time = 0:37, Depth = 2/12)}

27...Rfd8

{Score: 0.17 28.Rxd6 Qxd6 29.b4 Ra8 30.b5 Kg8 31.Nd2 Nh5 32.Qd5 Qxd5 33.exd5 f5 34.Nf3 Rd8 (Time = 0:48, Depth =

2/13)}

28.Rxd6

{Score: 0.15 28...Qxd6 29.Qxf7 Nxe4 30.Qc4 Nf6 31.Bg5 Rf8 32.Bxf6 Bxf6 33.Re1 Bg7 34.b4 Rf4 (Time = 0:50, Depth =

2/13)}

28...Rxd6

{Score: 0.26 29.Re1 Ne8 30.b4 Qe6 31.Qxe6 Rxe6 32.bxa5 bxa5 33.Rd1 Nd6 34.Nd2 f5 35.f3 Re7 (Time = 0:58, Depth =

2/13)}

29.b3

{Score: 0.10 29...Qe6 30.Qxc7 Nxe4 31.c4 Nc3 32.Re1 e4 33.Bf4 Rd7 34.Qb8 Rd3 35.Bg3 Qc6 (Time = 0:54, Depth = 2/13)}

29...Ne8

{Score: 0.25 30.b4 Qe6 31.Qxe6 Rxe6 32.bxa5 bxa5 33.Rd1 Nd6 34.Nd2 f5 35.f3 Re8 36.Bc5 Rd8 (Time = 0:59, Depth =

2/13)}

30.b4

{Score: 0.25 30...Qd7 31.bxa5 bxa5 32.Qb3 Nf6 33.Nxe5 Qe6 34.Qxe6 Rxe6 35.Nxf7 Rxe4 36.Bd4 Nd5 37.Bxg7 Kxg7 (Time =

1:03, Depth = 2/13)}

30...axb4

{Score: 0.45 31.cxb4 f5 32.a5 fxe4 33.Qxe4 Nf6 34.Qxe5 Qxe5 35.Nxe5 Nd5 36.Nc4 Rc6 37.Rc1 Nc3 38.Nd2 (Time = 0:45,

Depth = 2/12)}

31.cxb4

{Score: 0.62 31...f5 32.a5 fxe4 33.Nd2 Qd7 34.Nxe4 Rc6 35.Qb5 Nf6 36.axb6 cxb6 37.Qxe5 Nxe4 38.Qxe4 (Time = 1:02,

Depth = 2/12)}

31...Bf8

{Score: 1.42 32.a5 bxa5 33.bxa5 Rd8 34.a6 c5 35.Rc1 Qc7 36.Qc3 Ra8 37.Ra1 f6 (Time = 0:38, Depth = 1/11)

Slightly better is f5.}

32.a5

{Score: 1.42 32...bxa5 33.bxa5 Rd8 34.a6 c5 35.Rc1 Qc7 36.Qc3 Ra8 37.Ra1 f6 (Time = 0:37, Depth = 1/10)}

32...c5

{Score: 3.57 33.bxc5 bxc5 34.Bxc5 Qc7 35.Qb5 Bg7 36.Bxd6 Nxd6 37.Qd5 f5 38.exf5 Nxf5 39.Re1 Ne7 (Time = 0:44, Depth =

2/13)

Leads to 33.bxc5 bxc5 34.Bxc5 Qc7 35.Qb5 Bg7 36.Bxd6 Nxd6 37.Qd5 f5 38.exf5 Nxf5 39.Re1 Ne7, which wins a bishop and

two pawns for a rook and three pawns. Better is bxa5, leading to 33.bxa5 Rd8 34.a6 c5 35.Rc1 Qc7 36.Qc3 Ra8 37.Ra1 f6, which

wins a pawn for a pawn. This was black's most serious miscue, but black was able to stay close and eventually

mated.

}

33.bxc5

{Score: 3.92 33...bxc5 34.Bxc5 Qc7 35.Qb5 Nf6 36.a6 Nxe4 37.a7 Rd8 38.Bb6 Qb7 39.Bxd8 Qxb5 40.a8=Q Nc3 (Time = 1:09,

Depth = 3/14)}

33...bxc5

{Score: 4.13 34.Bxc5 Kg7 35.Bxd6 Nxd6 36.Qc6 f5 37.exf5 gxf5 38.a6 e4 39.Nd4 Kh8 40.Qd5 Qf6 (Time = 1:04, Depth =

3/14)}

34.Qxc5

{Score: 1.88 34...Nf6 35.Qb5 Nxe4 36.a6 Nc3 37.Qa5 Ne2+ 38.Kh1 Qd8 39.Qxd8 Rxd8 40.Nxe5 f6 41.Re1 (Time = 1:01, Depth

= 2/12)

Leads to 34...Nf6 35.Qb5 Nxe4 36.a6 Nc3 37.Qa5 Ne2+ 38.Kh1 Qd8 39.Qxd8 Rxd8 40.Nxe5 f6 41.Re1, which wins a queen and

two pawns for a queen and a pawn. Better is Bxc5, leading to 34...Kg7 35.Bxd6 Nxd6 36.Qc6 f5 37.exf5 gxf5 38.a6 e4 39.Nd4 Kh8

40.Qd5 Qf6, which wins a rook and two pawns for a bishop and a pawn.}

34...Ra6

{Score: 2.27 35.Qxe7 Bxe7 36.Nxe5 Nd6 37.Rc1 Bg5 38.f4 Bh4 39.Rc7 Kg8 40.Bc5 Nxe4 41.Nxf7 Rxa5 42.Nxh6+ Kh8 (Time =

1:00, Depth = 3/14)}

35.Qb5

{Score: 2.06 35...Re6 36.Ra1 Nc7 37.Qc4 Na6 38.Rc1 Qb7 39.Qc8 Qxc8 40.Rxc8 Bb4 41.Bb6 Kg7 (Time = 0:41, Depth = 2/12)}

35...Nc7

{Score: 2.79 36.Qc4 Ra8 37.Rc1 Ne6 38.Nxe5 Bg7 39.Nc6 Qb7 40.e5 Qb2 41.Re1 Rc8 (Time = 0:37, Depth = 2/12)}

36.Qc4

{Score: 2.74 36...Ra8 37.Rc1 Ne6 38.Nxe5 Bg7 39.Nc6 Qb7 40.e5 Nd8 41.Nxd8 Rxd8 42.a6 Qd7 43.Bb6 (Time = 1:22, Depth =

2/13)}

36...Ra8

{Score: 2.74 37.Rc1 Ne6 38.Nxe5 Bg7 39.Nc6 Qb7 40.e5 Nd8 41.Nxd8 Rxd8 42.a6 Qd7 43.Bb6 (Time = 0:58, Depth = 2/12)}

37.Ra1

{Score: 2.32 37...Bg7 38.a6 Ne6 39.Qc6 Qe8 40.Qxe8 Rxe8 41.a7 Nc7 42.Bc5 f6 43.Ra3 f5 (Time = 0:39, Depth = 2/11)}

37...Bg7

{Score: 2.44 38.a6 Qd7 39.a7 Ne6 40.Ra5 Qd1+ 41.Kh2 Qd8 42.Rd5 Qh8 43.Rd7 Rc8 (Time = 0:39, Depth = 2/11)}

38.a6

{Score: 2.40 38...Ne6 39.Qc6 Qd8 40.Bb6 Qf8 41.a7 Nd4 42.Nxd4 exd4 43.Ra5 d3 44.e5 (Time = 0:39, Depth = 2/11)}

38...Qd6

{Score: 2.84 39.a7 Ne6 40.Qb5 Qf8 41.Qb7 Nf4 42.Bxf4 exf4 43.e5 Qe8 44.Qe4 f6 45.e6 (Time = 0:55, Depth = 2/12)}

39.Qxf7

{Score: 2.09 39...Rxa6 40.Rc1 Rc6 41.Rxc6 Qxc6 42.Nxe5 Qxe4 43.Nxg6 Qxg6 44.Qxc7 Qd3 45.Kh2 Qe4 46.Bf4 Qg6 (Time =

0:37, Depth = 2/13)

Slightly better is a7.}

39...Rxa6

{Score: 2.08 40.Rc1 Rc6 41.Rxc6 Qxc6 42.Nxe5 Qxe4 43.Nxg6 Qb1+ 44.Kh2 Qxg6 45.Qxc7 Qe4 46.Bf4 Qe6 47.f3 (Time =

0:38, Depth = 2/13)}

40.Rxa6

{Score: 1.30 40...Nxa6 41.Qd5 Qc7 42.Qb5 Qd6 43.Kh2 Nc7 44.Qc4 Kh8 45.g3 Qd7 46.Kg2 Ne6 (Time = 0:51, Depth = 3/13)

Slightly better is Rc1.}

40...Nxa6

{Score: 1.30 41.Qd5 Qc7 42.Qb5 Nb8 43.Qb4 Nc6 44.Qc4 Qb7 45.Nd2 Nd4 46.Bxd4 exd4 47.f4 (Time = 0:58, Depth = 2/12)}

41.Qd5

{Score: 1.39 41...Qc7 42.Qe6 Qb7 43.Qc4 Nb8 44.g3 Nd7 45.Kg2 Nf6 46.Nd2 Qd7 47.Qc3 Ne8 (Time = 1:31, Depth = 3/13)}

41...Qf6

{Score: 1.41 42.Qb7 Qd6 43.Nd2 Nb8 44.Qd5 Qa6 45.Nc4 Nc6 46.Qf7 Qa4 47.f3 Qa1+ 48.Kh2 Qe1 (Time = 0:55, Depth = 3/13)

}

42.Kf1

{Score: 1.26 42...Nb4 43.Qc4 Qd6 44.g3 Nd3 45.Nd2 Qa3 46.Nb1 Qd6 47.Nc3 Nb2 48.Qd5 Qa6+ 49.Nb5 Qc8 (Time = 0:46, Depth

= 3/14)}

42...Nb4

{Score: 1.26 43.Qc4 Qd6 44.g3 Nd3 45.Nd2 Qa3 46.Qb3 Qa6 47.Kg2 Nc1 48.Qc4 Qxc4 49.Nxc4 Nd3 50.f4 (Time = 0:59, Depth

= 3/14)}

43.Qd7

{Score: 1.16 43...Qc6 44.Qxc6 Nxc6 45.Ke2 Kg8 46.Kd3 Kf7 47.Kc4 Ke6 48.Kb5 Nb8 49.Nh4 Kf7 50.Bc5 (Time = 0:37, Depth =

3/13)}

43...Nc2

{Score: 2.47 44.Bxh6 Kxh6 45.Qd2+ Kh7 46.Qxc2 Qa6+ 47.Kg1 Qb6 48.g3 Bf6 49.Qc4 Kh6 50.Qd5 Qc7 51.Kg2 Qc3 52.Qd6 (Time

= 0:37, Depth = 3/14)

Slightly better is Qc6.}

44.Bxh6

{Score: 2.50 44...Kxh6 45.Qd2+ Kh7 46.Qxc2 Qa6+ 47.Kg1 Qb6 48.g3 Bf6 49.Qc4 Kg7 50.Kg2 Qd6 51.Qd5 Qxd5 52.exd5 e4

53.Nd2 (Time = 1:02, Depth = 4/15)}

44...Kxh6

{Score: 2.56 45.Qd2+ Kh7 46.Qxc2 Qa6+ 47.Kg1 Qb6 48.g3 Bf6 49.Qd3 Qc7 50.Qd5 Kh6 51.Kg2 Qc3 52.Qd6 (Time = 0:23,

Depth = 3/13)}

45.Ke2

{Score: -1.41 45...Nd4+ 46.Nxd4 exd4 47.Qb5 Qe6 48.Qd3 g5 49.Qc2 Qa6+ 50.Qd3 Qa2+ 51.Kf3 Qe6 52.Ke2 Qc6 53.f3 Qc3 (Time

= 0:38, Depth = 3/13)

Leads to 45...Nd4+ 46.Nxd4 exd4 47.Qb5 Qe6 48.Qd3 g5 49.Qc2 Qa6+ 50.Qd3 Qa2+ 51.Kf3 Qe6 52.Ke2 Qc6 53.f3 Qc3, which

wins a knight for a knight. Better is Qd2+, leading to 45...Kh7 46.Qxc2 Qa6+ 47.Kg1 Qb6 48.g3 Bf6 49.Qd3 Qc7 50.Qd5 Kh6 51.Kg2

Qc3 52.Qd6, which wins a knight.}

45...Nd4+

{Score: -1.41 46.Nxd4 exd4 47.Qb5 Qe6 48.Qd3 g5 49.Qc2 Qa6+ 50.Qd3 Qb7 51.f3 Be5 52.Qc4 Qb2+ 53.Kf1 Qa1+ 54.Ke2 Qc3

(Time = 0:40, Depth = 3/14)}

46.Nxd4

{Score: -1.38 46...exd4 47.Qb5 Qe6 48.Qd3 g5 49.Qc2 Qa6+ 50.Qd3 Qa2+ 51.Qd2 Qb1 52.f3 Kg6 53.Qd3 Qa2+ 54.Kf1 (Time =

0:22, Depth = 3/13)}

46...exd4

{Score: -1.34 47.Qb5 Qe6 48.Qd3 g5 49.Kf1 Qc8 50.Ke2 Bf6 51.f3 Qc3 52.Qxc3 dxc3 53.Kd3 Kg6 54.Kc2 (Time = 1:26,

Depth = 5/14)}

47.Qb5

{Score: -1.35 47...Qe6 48.Qb1 g5 49.f3 Bf6 50.Qb4 Qa2+ 51.Kf1 Kg6 52.Qb5 Qd2 53.Qf5+ Kg7 54.Qd7+ Kh6 55.Qc6 Kg6 (Time =

1:14, Depth = 5/14)}

47...Qe6

{Score: -1.38 48.Qb1 Be5 49.Qd3 g5 50.Qa3 Qc4+ 51.Qd3 Qc3 52.Qxc3 dxc3 53.Kd3 Kh5 54.f3 Kg6 55.Kc2 (Time = 0:56,

Depth = 4/13)}

48.Qd5

{Score: -2.44 48...Qa6+ 49.Kf3 Qd3+ 50.Kf4 Qd2+ 51.Kg3 d3 52.h4 Qe2 53.Qg5+ Kh7 54.h5 Qxe4 55.hxg6+ Qxg6 56.Qxg6+ Kxg6

57.Kf3 Bh6 58.g4 d2 59.Ke2 (Time = 1:00, Depth = 4/13)

Slightly better is Qb1.}

48...Qc8

{Score: -1.33 49.Qb3 Be5 50.Qd3 g5 51.f3 Qc6 52.Kf2 Qa4 53.Qe2 Qb3 54.Qa6+ Kg7 55.Qc6 Kf7 (Time = 0:58, Depth = 4/13)

Slightly better is Qa6+.}

49.Qa2

{Score: -1.39 49...Be5 50.Qd2+ g5 51.Qd3 Kg7 52.Qb3 Qa6+ 53.Kf3 Bf6 54.g3 Qf1 55.Qe6 d3 56.Qd7+ Kh6 (Time = 0:39, Depth

= 3/12)}

49...Qc6

{Score: -1.36 50.Qd2+ g5 51.f3 Kh5 52.Kf2 Qc5 53.f4 d3+ 54.Kf3 Qc2 55.g4+ Kg6 56.f5+ Kh6 57.Qe3 Qd1+ 58.Kf2 Bf6 (Time

= 0:55, Depth = 4/13)}

50.Qd2+

{Score: -1.40 50...g5 51.Qd3 Bf6 52.g3 Qc1 53.Kf3 Kg7 54.Kg2 Qc3 55.Qb5 Qc2 56.Qd7+ Kh6 57.Qf5 (Time = 0:30, Depth =

4/13)}

50...Kh7

{Score: -1.18 51.Qd3 Qd6 52.g3 Qe6 53.h4 Qa2+ 54.Kf1 Qa1+ 55.Ke2 Qb2+ 56.Ke1 Qc3+ 57.Ke2 Kg8 58.f4 Kf7 59.e5 Bh6

(Time = 1:04, Depth = 5/14)}

51.Kf3

{Score: -2.85 51...Qc4 52.g4 Qf1 53.Kg3 Qg1+ 54.Kf3 Qh1+ 55.Kg3 Qxe4 56.f3 Qc6 57.Qe2 Qc3 58.h4 d3 (Time = 0:42, Depth

= 4/13)

Pins own pawn at e4. Leads to 51...Qc4 52.g4 Qf1 53.Kg3 Qg1+ 54.Kf3 Qh1+ 55.Kg3 Qxe4 56.f3 Qc6 57.Qe2 Qc3 58.h4 d3,

which loses a pawn. Better is Qd3, leading to 51...Qd6 52.g3 Qe6 53.h4 Qa2+ 54.Kf1 Qa1+ 55.Ke2 Qb2+ 56.Ke1 Qc3+ 57.Ke2 Kg8 58.f4

Kf7 59.e5 Bh6, which does not result in any captures.}

51...Qf6+

{Score: -1.34 52.Ke2 Qe5 53.Qd3 Bf6 54.g3 Qh5+ 55.g4 Qe5 56.Kf3 Kg7 57.Qb3 Qh2 58.Ke2 Qh1 59.Qb7+ Kh6 (Time = 0:58,

Depth = 5/14)

Frees White's pawn at e4 from the pin. Leads to 52.Ke2 Qe5 53.Qd3 Bf6 54.g3 Qh5+ 55.g4 Qe5 56.Kf3 Kg7 57.Qb3 Qh2

58.Ke2 Qh1 59.Qb7+ Kh6, which does not result in any captures. Better is Qc4, leading to 52.g4 Qf1 53.Kg3 Qg1+ 54.Kf3 Qh1+

55.Kg3 Qxe4 56.f3 Qc6 57.Qe2 Qc3 58.h4 d3, which wins a pawn.}

52.Ke2

{Score: -1.33 52...Qe5 53.Qd3 Bf6 54.g3 Qh5+ 55.g4 Qe5 56.Qb1 Qf4 57.Qd3 Kg7 58.Qc2 Bh4 59.f3 (Time = 0:56, Depth =

4/13)}

52...Qh4

{Score: -1.36 53.Qd3 Bf6 54.g4 Qg5 55.Qb3 Bg7 56.Qc4 Qf4 57.Qe6 Qc1 58.h4 Qc2+ 59.Kf3 d3 60.e5 (Time = 1:25, Depth =

5/14)}

53.f3

{Score: -1.45 53...Qg3 54.Kf1 Qe5 55.Ke2 Bf6 56.Qc1 Qg3 57.Qf1 Qg5 58.Kd1 Qe3 59.Qe2 Qc3 (Time = 0:38, Depth = 4/13)}

53...Qg3

{Score: -1.55 54.Kf1 Bf6 55.Qa2 Qd6 56.Qd5 Qb6 57.g4 Qb1+ 58.Kg2 Qb2+ 59.Kf1 Qc1+ 60.Kg2 Qd2+ 61.Kg1 Qe3+ 62.Kg2 Qe2+

63.Kg3 d3 (Time = 1:16, Depth = 5/14)}

54.Kd3

{Score: -1.69 54...Bf6 55.Qe2 Qb8 56.Kc2 Qc7+ 57.Kb1 Bg5 58.Qc2 Qb6+ 59.Ka2 Qa6+ 60.Kb2 Bf4 61.Qb3 Qe2+ 62.Qc2 d3

63.Qxe2 dxe2 (Time = 0:58, Depth = 4/13)}

54...Bh6

{Score: -1.35 55.Qa2 Qd6 56.Qb3 Be3 57.Qb7+ Kh6 58.Qa8 Qb6 59.e5 Kg5 60.h4+ Kxh4 61.Qe4+ Kg3 62.Qg4+ Kf2 63.f4 Qb5+

64.Ke4 Qc6+ 65.Kd3 Qxg2 (Time = 1:33, Depth = 5/14)}

55.Qa2

{Score: -1.39 55...Qd6 56.Qd5 Qb4 57.Qxd4 Qd2+ 58.Kc4 Qxg2 59.Qd7+ Bg7 60.Qg4 Qc2+ 61.Kd5 Qd3+ 62.Ke6 Qd8 63.Qg3 Qb6+

64.Kd7 Bf6 (Time = 1:00, Depth = 4/13)}

55...Bg7

{Score: 0.00 56.Qd2 (Time = 0:30, Depth = 7/16)

Leads to 56.Qd2, which does not result in any captures. Better is Qd6, leading to 56.Qd5 Qb4 57.Qxd4 Qd2+ 58.Kc4 Qxg2

59.Qd7+ Bg7 60.Qg4 Qc2+ 61.Kd5 Qd3+ 62.Ke6 Qd8 63.Qg3 Qb6+ 64.Kd7 Bf6, which wins a pawn for a pawn.}

56.Qd2

{Score: -1.64 56...Bf6 57.Qe2 Qg5 58.Kc2 Qc5+ 59.Kd1 d3 60.Qxd3 Qg1+ 61.Ke2 Qxg2+ 62.Ke3 Kh6 63.Qd1 Bg5+ 64.Kd4 Qxh3

(Time = 1:01, Depth = 4/13)}

56...Qd6

{Score: -1.70 57.Ke2 Bh6 58.Qd3 Qb4 59.g3 Qb2+ 60.Kf1 Be3 61.Qe2 Qc1+ 62.Qe1 Qc4+ 63.Kg2 Qd3 64.Kh1 Qc2 (Time = 0:51,

Depth = 4/13)}

57.Qa2

{Score: -1.75 57...Qc5 58.Qc4 Qa3+ 59.Kc2 d3+ 60.Qxd3 Qb2+ 61.Kd1 Qxg2 62.h4 Qg1+ 63.Ke2 Qh2+ 64.Ke3 Qxh4 65.Qd6 Qe1+

66.Kf4 Qc1+ 67.Kg4 Qc8+ 68.Kg5 (Time = 0:55, Depth = 4/13)}

57...Qb4

{Score: -1.86 58.Ke2 Qb5+ 59.Kf2 Qc5 60.Ke2 Qg5 61.Kd1 d3 62.Qd2 Qb5 63.Ke1 Qb1+ 64.Kf2 Qc2 65.Ke1 Be5 (Time = 1:09,

Depth = 5/14)}

58.Ke2

{Score: -1.86 58...Qb5+ 59.Kf2 Qc5 60.Ke2 Qg5 61.Kd1 d3 62.Qd2 Qb5 63.Ke1 Qb1+ 64.Kf2 Qc2 65.Ke1 Be5 (Time = 0:58,

Depth = 4/13)}

58...Qc3

{Score: -1.33 59.Qd2 Qc5 60.f4 Qh5+ 61.Kf1 Qb5+ 62.Kf2 Qc4 63.g4 Bf8 64.f5 Bb4 65.Qb2 Qc3 66.Qxc3 dxc3 (Time = 0:37,

Depth = 4/13)}

59.Qd2

{Score: -1.29 59...Qb3 60.Qd3 Qb2+ 61.Qd2 Qb5+ 62.Kf2 Qc4 63.Qg5 Qc2+ 64.Kf1 d3 65.Qh4+ Kg8 66.Qd8+ Bf8 67.Qf6 Qc1+

68.Kf2 Bc5+ 69.Kg3 Qe1+ 70.Kg4 (Time = 0:57, Depth = 4/13)}

59...g5

{Score: -0.91 60.Qxg5 d3+ 61.Kf1 Bf6 62.Qf5+ Kg7 63.Qg4+ Kf8 64.Qf5 Ke7 65.Qh7+ Kd6 66.Qh6 Ke6 67.Qg6 Qc1+ 68.Kf2 Ke7

69.Qg8 (Time = 0:49, Depth = 4/13)}

60.Qd3

{Score: -1.27 60...Qc5 61.Qb3 Qc1 62.Qd5 Qe3+ 63.Kf1 d3 64.Qf5+ Kg8 65.Qc8+ Bf8 66.Qe6+ Kh8 67.Qc8 Qc5 68.Qxc5 Bxc5

(Time = 0:44, Depth = 3/12)}

60...Bf6

{Score: -1.05 61.Qxc3 dxc3 62.g3 Be5 63.h4 g4 64.fxg4 Bxg3 65.Kd3 Be5 66.Ke2 Kg6 67.Kd3 Bd4 68.Kc2 Bg7 (Time = 0:47,

Depth = 6/15)}

61.Qxc3

{Score: -0.96 61...dxc3 62.g3 Be5 63.h4 g4 64.fxg4 Bxg3 65.Kd3 Be5 66.Kc2 Bg7 67.Kd3 Kg6 68.Kc2 Bf6 69.Kd3 Kg7 (Time =

0:10, Depth = 10/17)}

61...dxc3

{Score: -0.91 62.g3 Be5 63.h4 g4 64.fxg4 Bxg3 65.Kd3 Be5 66.Kc2 Kg6 67.Kd3 Bd4 68.Kc2 Bf6 69.Kd3 Be5 70.Kc2 Kg7

71.Kd3 Bd4 72.Kc2 (Time = 0:54, Depth = 15/21)}

62.Kd3

{Score: -1.10 62...Be5 63.g3 Bxg3 64.Kxc3 Kg6 65.Kd4 Kf6 66.Kd5 Ke7 67.Kd4 Ke6 68.Ke3 Ke5 69.Kd3 Bf2 70.Ke2 Bc5 71.Kf1

Be7 72.Kf2 Kf4 73.Ke2 (Time = 0:47, Depth = 16/22)}

62...Kg6

{Score: -0.81 63.g3 Bd4 64.f4 Kh6 65.Kc2 Kh5 66.e5 Kg6 67.e6 Kf6 68.fxg5+ Kxe6 69.g4 Ke5 70.Kd3 Kf4 71.g6 Bg7 72.Kc2

Ke4 (Time = 0:49, Depth = 13/19)}

63.g3

{Score: -0.72 63...Bd4 64.f4 Kf7 65.e5 Ke6 66.Kc2 Ke7 67.fxg5 Ke6 68.h4 Kxe5 69.h5 Kf5 70.g6 Kg5 71.g4 Bg7 72.Kd3 Kxg4

(Time = 0:36, Depth = 12/18)}

63...Kh5

{Score: -0.73 64.f4 Bd4 65.Kc2 Kg6 66.Kd3 Kh6 67.Kc2 Kh5 68.Kd3 Kg6 69.Kc2 Kf6 70.Kd3 gxf4 71.gxf4 Ke6 72.h4 Kd7

73.h5 Ke6 (Time = 1:09, Depth = 13/19)}

64.f4

{Score: -0.49 64...Bd4 65.e5 Kg6 66.e6 Kf6 67.f5 Be5 68.g4 Ke7 69.Ke2 Bg7 70.Kd1 Bh8 71.Kc2 Bf6 72.Kd1 Bd4 73.Kc2 (Time

= 0:59, Depth = 12/18)}

64...Kg6

{Score: 0.00 65.e5 Bg7 66.Kxc3 gxf4 67.gxf4 Bh6 68.Kc2 Bxf4 69.Kd3 Bxe5 70.Kc2 Kf7 71.Kd2 Bd4 72.Kd3 Bg7 73.Kd2 Ke7

74.Kd3 (Time = 0:36, Depth = 12/18)}

65.e5

{Score: 0.00 65...Bg7 66.Kxc3 gxf4 67.gxf4 Bh6 68.Kd4 Bxf4 69.e6 Kg7 70.e7 Kf7 71.e8=Q+ Kxe8 72.Kd3 Kf7 73.Kd4 Bh6

74.Kd3 Bg5 75.Kc4 Bh6 (Time = 0:36, Depth = 12/18)}

65...gxf4

{Score: 0.00 66.gxf4 Be7 67.Kxc3 Kf5 68.Kd3 Kxf4 69.Ke2 Kxe5 70.Kd3 Kf5 71.Kd2 Kg6 72.h4 Bxh4 (Time = 0:13, Depth =

12/18)}

66.exf6

{Score: -9.21 66...fxg3 67.f7 Kxf7 68.Ke3 g2 69.Kf2 g1=Q+ 70.Kxg1 Kf6 71.Kf2 c2 72.Kf3 c1=Q 73.Ke4 Qh6 74.Kd4 Qxh3

75.Kc4 Qe6+ 76.Kd4 Qe5+ 77.Kd3 Qd5+ 78.Ke3 Ke5 (Time = 0:59, Depth = 9/15)

Yikes! Leads to 66...fxg3 67.f7 Kxf7 68.Ke3 g2 69.Kf2 g1=Q+ 70.Kxg1 Kf6 71.Kf2 c2 72.Kf3 c1=Q 73.Ke4 Qh6 74.Kd4 Qxh3

75.Kc4 Qe6+ 76.Kd4 Qe5+ 77.Kd3 Qd5+ 78.Ke3 Ke5. Much better is gxf4, leading to 66...Be7 67.Kxc3 Kf5 68.Kd3 Kxf4 69.Ke2 Kxe5

70.Kd3 Kf5 71.Kd2 Kg6 72.h4 Bxh4, which gains a queen and loses a bishop by comparison. This was white's key error. White was

not able to regain the lost ground and was eventually

mated.

}

66...fxg3

{Score: -9.34 67.Ke2 g2 68.Kd3 g1=Q 69.Kxc3 Kxf6 70.Kb4 Ke5 71.Kb5 Qf1+ 72.Kc6 Qxh3 73.Kc7 Qc3+ 74.Kb6 Qd3 75.Kc5

Qd5+ 76.Kb4 (Time = 0:35, Depth = 9/15)}

67.Ke2

{Score: -9.34 67...Kxf6 68.Kf3 c2 69.Kxg3 c1=Q 70.Kf2 Qf4+ 71.Ke2 Ke5 72.Kd3 Qf5+ 73.Kd2 Qxh3 74.Ke2 Qg4+ 75.Kd2 Qd4+

76.Ke2 Qe4+ 77.Kd2 (Time = 0:59, Depth = 8/14)}

67...c2

{Score: -9.00 68.f7 Kxf7 69.Kf3 c1=Q 70.Kxg3 Qg1+ 71.Kf4 Qh2+ 72.Kg4 Qg2+ 73.Kf4 Qxh3 74.Ke4 Qe6+ 75.Kd4 Kf6 (Time =

0:49, Depth = 6/12)}

68.Kd2

{Score: -9.29 68...c1=Q+ 69.Kxc1 Kxf6 70.Kd2 g2 71.Kd3 g1=Q 72.Ke4 Qg2+ 73.Kd4 Qxh3 74.Ke4 Qf5+ 75.Kd4 Qe5+ 76.Kd3 Qd5+

77.Ke3 Ke5 78.Kf2 (Time = 0:55, Depth = 5/11)}

68...g2

{Score: -9.05 69.Kxc2 g1=Q 70.Kd3 Qg3+ 71.Kd4 Qxh3 72.f7 Qg4+ 73.Kd5 Qf5+ 74.Kd4 Kxf7 75.Ke3 (Time = 0:26, Depth =

3/9)}

69.Kxc2

{Score: -9.13 69...g1=Q 70.Kb3 Qg3+ 71.Kb4 Qxh3 72.f7 Qg4+ 73.Kc5 Qf5+ 74.Kd4 Qxf7 75.Ke4 Qe6+ 76.Kf4 Qd5 (Time =

1:51, Depth = 4/10)}

69...g1=Q

{Score: -9.10 70.Kd3 Qg3+ 71.Ke4 Qxh3 72.Kd4 Qg4+ 73.Ke5 Qf5+ 74.Kd4 Kxf6 75.Ke3 (Time = 0:44, Depth = 3/8)}

0-1

Ok, I am cheating now. I was feeling bad for not playing chess lately (or playing badly when I had other stuff to do, generating even more guilt) and having nothing to blog about except maybe books and also thinking about all the other directions of the blog that I failed to cover: programming, music, tech news.

So I bring you Brute force or intelligence? The slow rise of computer chess, which is an article about chess, it is from Ars Technica (tech news) and it involves some notions of programming. All I need for this to be complete is music!

Seriously now, I went to a friend's last night and played a bit of chess. We were both a little tired and drunk, so we played chess "for fun" (which translates to incredibly bad), but it really felt fun as opposed to playing a computer at a very low level. Why is that? I believe it is all about prioritization.

When a human plays, he is trying to use the principles of chess, but he doesn't have the time or mental resources to take each one and analyse each piece or position. Humans do use subconscious mechanisms to quickly scan a table, but that only comes with a lot of chess training. So basically, what a beginner human player is left with is finding a strategy that would quickly and (preferably) forcibly win the game. That means that we use something akin with the "Type B" algorithm from the article above. But it's not quite it, because it is a bit of everything, something that is traditionally hard to implement in a computer program (and that has more to do with the psychology of programming engineers than with a specific level of difficulty). Basically we look at the pieces, prioritised by their power and reach as well as their position relative to an area of attack or defence. That is why we don't see the queen or bishop in the corner of the table, because, looking in ever wider circles around the area we are focused on, we suddenly stop and start doing something else. Compare that with a computer which can take the measly 32 pieces on the board and computer in a few fractions of a second all their possible moves and the resulting board position.

Then, when we see a possible good move, we take it forward as many steps as we can. Does a chess beginner do a comprehensive tree of all possible moves in that scenario? Of course not. Not only we do not see all (or most) of the moves, but when we see a possibility for the opponent to play a counter move, we quickly analyse the likelihood that the other guy would see it and sometimes we even gamble that they won't do it, just because we wish they didn't. This is also psychological: the gambler way of thinking has been documented for a while, they are motivated by loss which gives them more of an adrenaline rush than winning or that makes winning ever sweeter; also the guy we play with is probably our friend and we partly root for the guy as well. Program that into a computer! I've had games where I took huge risks on the hope that my friend would a) not see the move, which would make me look good when playing a cool game and b) that he would see the move, making his game look cool, thus making the entire session interesting.

Back to programming, I think that the easiest way of implementing this kind of bad human play in a computer game is to take a normal computer algorithm for playing chess, like mini-max, then program a sort of Alzheimer routine, that would remove bits of its reasoning based on a probability computed from the following factors: proximity of pieces to a region of interest (which would also have to be defined, but let's just assume it would be the average of positions of the pieces involved in the current line of thought), the artistic value of a line of thought (which would be defined either by massive sacrifices for important gains, or by how severely we limit the opponent options - in other words: power), the probability that the opponent would see a move (computed based on current history of play) and also by the artistic value of the entire game, as described in the last paragraph.

In other words, what I am proposing here is that we have a perfect algorithm for playing chess, one that is limited by computing power alone. What we don't have is a good algorithm for bad play, for fun play. Most computer programs I've seen, including ChessMaster, which boasts with its ability to simulate human players of varying abilities, have incredibly stupid ways of limiting performance. For example: a knight wants to attack f7, the black soft spot; it has plans to move a bishop there as well. I move a pawn to prevent the bishop from attacking that spot and the computer takes with the knight, sacrificing a minor piece for a pawn and my king's ability to castle. Or a rook attacks a knight. It then takes the knight, even if defended. In other words, random, pointless moves. Every human move is purposeful, even if the purpose if flawed by bad judgement. Random moves won't do, they have to be moves that follow a plan, no matter how bad that plan is. We need a perfect algorithm for throttling the playing chess level. We need to look at human bad games, make their own chess database, extract rules for bad play and implement this into computers.

and has 1 comment
The Art of Learning is a wonderful book, both concise and useful, with tremendous sources for inspiration at every level. It also has more meaning to me, as it started with an investigation in the life of Josh Waitzkin, prompted by my renewed attention to chess.
To start from the beginning, I've first heard of Josh Waitzkin when I've started going through the "academy" section of ChessMaster XI. The first chapter in this section was Josh Waitzkin's academy, which taught with examples of both life and game. I was intrigued, so I looked the guy up. This way I found references to Searching for Bobby Fischer, a Hollywood movie about the early life of chess prodigy Josh Waitzkin, based on a book by his father. I watched the film, with both positive and negative feelings, but at the most I was even more intrigued. I then found out about the two books that Josh wrote: Attacking Chess and The Art of Learning and started reading the latter, since I had to read it on my old Palm in the subway and I am not yet at the level in which I can mentally visualize chess notation.
The Art of Learning is everything I wanted in a book about learning: the personal introspective view, the theory of learning and its mechanics, clear examples and methods of achieving the same results. Frankly told, I doubt many people can learn at the same speed as Josh Waitzkin can - clearly the guy is a genius - but there are insights in this book that blew me away.
The book is structured in three parts:
  • The Foundation - describing the early experience of learning, the downfalls, the insights, the situations in which Josh found himself as a child discovering the game of chess and then becoming National chess champion.
  • My Second Art - the part where he finds less peace in chess and decides to abandon it in favor of the martial art of Tai Chi Chuan, which centers him and presents new opportunities for learning. Here similar principles are found to the ones related to chess.
  • Bringing it All Together - where Waitzkin describes methods for identifying your own method of learning and reaching the state of mind most conducive to high performance

It all ends with a climactic Taiwan International martial arts championships that Josh wins, overcoming adversity and malevolent judges, a story that rivals any of Van Damme's movies, but also shows where the inspiration for those came from.

There are some ideas that I could understand immediately, seem obvious, but I've never thought of before:
One of them is that the unconscious mind acts like a high speed parallel processor, while the conscious mind is a serial decisional engine. An expert in a field does not think faster than a beginner; he only placed many of the underlying principles in the subconscious, running them at high speed, and leaving the conscious mind decide, like a manager, from the granular information that is precomputed and available. That makes sense at the smallest biological level. Think of the frog eye that sends a yes/no signal through the optical nerve when a fly enters the field of view - the frog does not have to decide if what it sees is a fly or not. But it also explains quite clearly the effect of training, something that I, to my shame, had not understood until now. Training is not simply learning, it is also moving the information downwards, "internalizing" it, as Waitzkin calls it. GrandMasters do not think about the possibilities on the chess board from the bottom up, they already see structure and work directly with the aggregated, higher level information. Martial arts experts don't count the steps in a complicated move, they just make them. Normal people do not put a foot in front of the other, they walk, they don't string words up, they speak.
Another idea is that the process of learning, done in small increments, allows the direct internalization of concepts before we use them in combinations. First move a few pieces until you know how they work, don't start with complicated chess games. Reduce the scope of your training and the internalization will come a lot faster. Then, in a complex game, you just use the things you have learned previously. When training to fight, train each small move before you start combining them.
This is an important idea in The Art of Learning: the difference between what Waitzkin calls entity-learning and process-learning. Entity learners will try to find the quick way out, find the small trick that get the problem done; they will care only about the end result, collapsing under the fear of losing. The process learner would enjoy the challenge, see each problem as something that can be solved if attacked metodically and chipped away at bit by bit. They will value the process of learning over the end result. An entity learner will try to learn as much as possible, in the end reaching mediocre levels of understanding in all fields, while a process learner will take each process as far as possible before engaging another. Process learners would say "I didn't learn enough" when losing, while entity learners would say "I wasn't good enough".
I am sorry to say that I apparently fall towards the entity-learner category. It is obvious that must change and I hope it can. What I gathered from this concept is that entity learners identify themselves with the solution of a problem. Losing makes them losers, winning makes them winners. Process learners identify themselves with the process of learning, making them bad or good learners. A very good point Josh makes is that the type of learning is usually caused by the way parents reacted to the early success of their children and also that it can be changed, it is not set in stone like just another cemmented childhood psychological baggage.
An interesting thing about the book is that it also provides some mechanisms to improve, to reach that "zone" of serenity and presence in the moment. Borrowing from Taoist concepts, Josh Waitzkin advocates leaving in the moment, being present, aware, and he provides methods to train to reach that present state at will. I find that very interesting.

In the end I would call this one of the most useful books I've read and I certainly intend to improve on myself using some of the guiding principles in it. Josh is an extremely competitive and intelligent person and, given the opportunity of having good and talented parents, made the best of it. I am not saying that all can reach the same level of success and internal balance, but it is surely refreshing to see one of these great people lowering themselves to the level of the normal guy and giving him a few pointers. That is exactly what The Art of Learning is.

and has 0 comments
Ok, I am mostly testing the javascript for the chess games, but this was also an interesting game for me. I am playing black and my trusty cellphone (running ChessGenius on an antiquated Nokia) is white. White starts with the Four Knights Spanish variation (bringing his light bishop to b5) and I am trying to do a Halloween gambit style move by sacrificing a knight for a center pawn in order to gain a positional advantage. Here is goes:
[Event "OpenChess"]
[Site ""]
[Date "2011.07.22"]
[Round ""]
[White "Computer"]
[Black "Player"]
[TimeControl "-"]
[Result "0-1"]
[ECO " "]


{Annotations by Chessmaster: Grandmaster Edition Auto-Annotator. 30 seconds per move.

White Black
Book Move 4 3
Leave
Book 0 1
CMX Agrees 19 21
CMX Disagrees 6 5
Agreement Pct. 76% 81%
Total Error 13.58 13.24
Relevant
Error 13.58 13.24
Missed Mate 0 0
Moved Into Mate 2 0

}
1.e4
{B00 King's Pawn Opening. The King's Pawn opening move is both popular and logical. It controls the center, opens lines
for both the Queen and the Bishop, and usually leads to an open game in which tactics, rather than slow maneuvering,
predominates.}
1...e5
{C20 King's Pawn Game. Black responds symmetrically, making a direct challenge to the central squares.}
2.Nf3
{C40 King's Knight Opening. With the possible exception of :2. f4, this is the most logical second move against Black's
symmetrical answer to the King's Pawn. The Knight attacks e5, clears the way for an eventual castle and rests on its best
defensive square.}
2...Nc6
{C44 Queen's Knight Variation. Now, when White plays 3.Nc3 (instead of the Ruy Lopez), it's the Three Knight's Game; a
leisurely system.}
3.Nc3
{C46 Three Knights Opening.}
3...Nf6
{C46 Four Knights Opening. With Black's final Knight development, the Four Knights Game results: Several imitations of
moves until Black must diverge and be content with a sound, but uninteresting game.}
4.Bb5
{C48 Four Knights Opening / Spanish Variation.}
4...Nxe4
{Out of Opening Book. Bb4 would have been in the Four Knights Opening / Double Spanish Variation 4.Bb5 Bb4 opening
line. Leads to 5.Nxe4 f5 6.Ng3 e4 7.Ng1 a6 8.Ba4 g6 9.N1e2 b5 10.Bb3 Bd6, which wins a pawn for a knight. Better is Bc5, leading
to 5.O-O a6 6.Bxc6 dxc6 7.Nxe5 O-O 8.d3 Bd4 9.Bf4 Be6, which wins a bishop for a knight and a
pawn.
}
5.Nxe4
{Blocks Black's pawn at e5.}
5...d5
{Attacks White's knight at e4.}
6.Bxc6+
{Partially pins Black's pawn at b7, removes the threat on White's knight at e4, forks Black's king and Black's pawn at
e5, and blocks Black's pawn at c7.}
6...bxc6
{Removes the threat on Black's king and attacks White's knight at e4. White wins two knights for a bishop and a pawn.}

7.Nc3
{Moves it to safety.}
7...d4
{Threatens White's knight at c3.}
8.Ne2
{Moves it to safety.}
8...c5 9.d3 Bb7 10.Ng3 g6
{Slightly better is Bd6.}
11.O-O Bd6
{Protects Black's pawn at e5 and makes way for a castle to the kingside.}
12.Re1 Qe7
{Slightly better is f6.}
13.Ne4
{Slightly better is Nxe5.}
13...f5
{Leads to 14.Bg5 Qf7 15.Nxc5 Bxf3 16.Qxf3 O-O 17.Qc6 Rab8 18.Nd7 Rxb2 19.Nxf8 Qxf8 20.a4, which wins two knights and a
pawn for a rook, a bishop, and a pawn. Better is f6, leading to 14.Bh6 O-O-O 15.c4 Kb8 16.Nfd2 Ka8 17.Nb3 Rb8 18.Qe2 g5, which
results in no exchange of material.}
14.Bg5
{Attacks Black's queen and blocks Black's pawn at g6.}
14...Qe6
{Moves it to safety.}
15.Nf6+
{Leads to 15...Kf7 16.Bh4 h6 17.b4 Rab8 18.a4 Bxf3 19.Qxf3 Be7 20.Ng4 Bxh4 21.Nxe5+ Kg7 22.bxc5, which wins a bishop
and two pawns for a bishop and a knight. Better is Nxc5, leading to 15...Qd5 16.Nxb7 Qxb7 17.Nxe5 O-O 18.Qf3 Qxf3 19.Nxf3 Rfb8
20.Rab1 c5 21.Re6 Rb6, which wins a queen, a bishop, and two pawns for a queen and a knight.}
15...Kf7
{Moves it out of check.}
16.a3 h6
{Threatens White's bishop.}
17.Bh4
{Moves it to safety.}
17...g5
{Forks White's knight at f6 and White's bishop.}
18.Nxg5+
{Leads to 18...hxg5 19.Bxg5 Be7 20.f4 Bxf6 21.Bxf6 Qxf6 22.Rxe5 Bxg2 23.Rxc5 Bc6 24.Qe2 Rag8+ 25.Kf1, which wins a
bishop and four pawns for a bishop, two knights, and a pawn. Better is Nh5, leading to 18...gxh4 19.Nxh4 Rag8 20.Ng3 f4 21.Qh5+
Kf8 22.Ne4 Qf7 23.Qf5 Be7 24.Qh3, which wins a pawn for a bishop.}
18...hxg5
{Removes the threat on Black's king and Black's queen and double-attacks White's bishop.}
19.Bxg5
{Protects White's knight and creates a passed pawn on h2. Black wins a knight for two pawns.}
19...Be7
{Pins White's knight with a partial pin.}
20.f4
{Partially pins Black's pawn at e5 and frees White's knight from the pin.}
20...Bxf6 21.Bxf6
{Attacks Black's rook at h8.}
21...Qxf6
{Disengages the pin on Black's pawn at e5 and removes the threat on Black's rook at h8.}
22.Rxe5
{Uh-oh! Leads to 22...Rag8 23.Qd2 Rxg2+ 24.Qxg2 Bxg2 25.Rae1 Bf3 26.Re7+ Qxe7 27.Rxe7+ Kxe7 28.a4 Bd1 29.c3 Bxa4
30.Kg2, which wins a queen, a rook, and a pawn for a queen, two rooks, and two pawns. Much better is c3, leading to 22...Bxg2
23.Qb3+ Kg7 24.Qc2 Bb7 25.cxd4 Qc6 26.d5 Qxd5, which wins a pawn for two pawns.}
22...Qg6
{Yikes! Leads to 23.Qe2 Rae8 24.g3 Qh7 25.Re1 Rxe5 26.fxe5 Ke6 27.c4 Qh5 28.Qxh5 Rxh5, which wins a queen and a rook
for a queen and a rook. Much better is Rag8, leading to 23.Qd2 Rxg2+ 24.Qxg2 Bxg2 25.Rae1 Bf3 26.Re7+ Qxe7 27.Rxe7+ Kxe7 28.a4
Bd1 29.c3 Bxa4 30.Kg2, which wins a queen, two rooks, and two pawns for a queen and a rook. Black had a won game before this
error, but it was not costly; black was able to eventually
mate.
}
23.g3
{White moves into a forced mate. Much better is Qe2. g3 leads to 23...Rxh2 24.Qe1 Rh1+ 25.Kf2 Qxg3+ 26.Ke2 Bf3+ 27.Kd2
Qxf4+ 28.Qe3 dxe3+ 29.Rxe3 Rh2+ 30.Kc1 Qxe3+ 31.Kb1 Qe2 32.Ka2 Bd5+ 33.b3 Qxc2# and checkmate. This was white's most crucial
mistake. Black didn't carry the mate through just yet, but was later able to
mate.
}
23...Rxh2
{Black has a mate in 10. Attacks White's pawn at g3. Leads to 24.Qe1 Rh1+ 25.Kf2 Qxg3+ 26.Ke2 Bf3+ 27.Kd2 Qxf4+
28.Qe3 dxe3+ 29.Rxe3 Rh2+ 30.Kc1 Qxe3+ 31.Kb1 Qe2 32.Ka2 Bd5+ 33.b3 Qxc2# and checkmate.}
24.Re7+
{Pins Black's pawn at c7, protects White's pawn at g3, and forks Black's king and Black's pawn at c7.}
24...Kxe7
{Black has a mate in 7. Frees Black's pawn at c7 from the pin, protects Black's pawn at c7, and threatens White's
pawn at g3. Leads to 25.Qe1+ Kf7 26.Kf1 Rh1+ 27.Ke2 Re8+ 28.Kd2 Rh2+ 29.Qf2 Rxf2+ 30.Kd1 Bf3+ 31.Kc1 Re1# and checkmate.}
25.Qe1+
{Removes the threat on White's pawn at g3 and checks Black's king.}
25...Kf7
{Black has a mate in 6. Moves it out of check and threatens White's pawn at c2. Leads to 26.Kf1 Rh1+ 27.Ke2 Re8+
28.Kd2 Rh2+ 29.Kd1 Qg4+ 30.Qe2 Qxe2+ 31.Kc1 Qxc2# and checkmate.}
26.Rc1
{White moves into a forced mate. Much better is Qe7+. Rc1 leads to 26...Rh1+ 27.Kf2 Qxg3+ 28.Kxg3 Rg8+ 29.Kf2 Rg2# and
checkmate.}
26...Rh1+
{Black has a mate in 3. Moves it to safety, skewers White's king, and checks White's king. Leads to 27.Kf2 Qxg3+
28.Kxg3 Rg8+ 29.Kf2 Rg2# and checkmate.}
27.Kf2
{Forced. Moves it out of check.}
27...Qxg3+
{Black has a mate in 2. Forks White's king and White's pawn at f4 and isolates White's pawn at f4. Leads to 28.Kxg3
Rg8+ 29.Kf2 Rg2# and checkmate.}
28.Kxg3
{Removes the threat on White's pawn at f4. White wins a queen for a pawn.}
28...Rg8+
{Black is one move from mate. Checks White's king. Leads to 29.Kf2 Rg2# and checkmate.}
29.Kf2
{Forced. Moves it out of check.}
29...Rg2#
{Checkmates White's king.
}
0-1


Unfortunately, the script I am using doesn't have support for adnotations. I've analysed this game with ChessMaster XI and it added some interesting comments. I will try to add the relevant ones to the post. Silly me, it does have support for adnotations, but can't read the PGN correctly. After a few fixes to the code, I present you the game.

You can see here that neither of the players are particularly good (Uhh!). The Halloween Gambit is usually employed by white in the Four Knights opening and it is one that I like simply because it looks cool:
1. e4 e5 2. Nf3 Nc6 3. Nc3 Nf6 4. Nxe5 *
If black doesn't know about it, it will be a shock - What the hell is he doing? - and at least psychologically it is a very good tool. Of course, exchanging a knight for a pawn is not the smartest of moves unless you have good reason. In this case, white gambles material for immediate attack opportunities.

When I was a kid, my grandfather taught me to play chess. I did play with him, with my father, with an aunt, with the game Chessmaster on my 386 computer. I was feeling very good at it at the time, even if no one was really teaching me the theory behind the game. Then I suddenly stopped, mainly for lack of people to play with.

But now I have found a new friend with a passion for chess and he reignited my original curiosity about this game. I've started to learn about the different openings, the theory behind them, the principles of chess and the way a person must prepare for really playing the game, end games and famous players and games. I still suck at chess, but at least I am better than most of my acquaintances and I think this is a little more than my usual one minute flames. I really am enjoying the academic side of the game and I believe the discipline required to truly play chess will transpire into other facets of my life, especially programming.

So, my plan is to learn more and share with you my findings. I am creating a new tag, chess, which will mark the entries discussing the game. I still have to learn how to embed chess tables in the entries and to learn enough to feel comfortable sharing my ideas with other people, so bear with me. If you are interested in the subject, please leave me a comment with your view on it.

So far I have looked for chess videos to teach me things. I find them most instructive while I am not yet used to reading a game as text and imagining it in my head (I doubt I ever will). Also a great resource is the game Chessmaster XI, the last version of the game I was playing against as a child. It features three academies, teaching the basics of the game as well as a natural language mentor that can analyse and explain some of the features of a game. Josh Waitzkin, the international Grand Master and the subject of Searching for Bobby Fischer, a fascinating man, is the guy that explains things in the first and most complete academy module. His book, The Art of Learning, seems really interesting and I will review it soon.

As chess resources go I've found these wonderful sites:
  • The Chess Website, the site of Kevin Butler, who is a very nice guy.
  • Chess Videos TV, where you may find great information in video format, but you must sift through the ones that have either bad audio quality or the presenter is too heavily accented.
  • JRobi Chess, where you can find an actual study plan, three daily chess puzzles and an embedded chess game in Java.
  • Chess.com is a site with reasonable resources, but it's strong point is the huge chess community and interesting forums. People from all over the world compete against each other and discuss the game
.

There are others, but less important. Bottom line: I am starting to blog about chess, too. I will leave you with a chess story that I really liked. It is about Bobby Fischer, the only American world champion at chess, with a very interesting and dramatic personal story. This one is about a chess opening called The King's Gambit. In 1961, Fischer writes an angry essay against this opening, called A Bust to the King's Gambit, allegedly annoyed by Boris Spassky who defeated him while using this opening. He publishes this article in the American Chess Quarterly, edited by one Larry Evans, also an international chess master. In 1963, Bobby Fischer is playing against Larry Evans, in the U.S. Chess Championship. He starts with the King's Gambit and wins. The moral of the story here, for me, was that chess is something that explodes off the board and into the real life. Competitive chess players mold their game strategy before they start the game, by preparing against the opponent as warriors would do before a battle, by analysing the flaws in previous games, in character, in personal history. In just three moves, Fischer told Evans "I am starting with an inferior opening. That is just how much I think of you!", striking a subtle blow even before starting to play.

Watch the analysis of the game as well, by Kevin Butler. Enjoy!