Right now I'm conducting some experiments concerning my favourite topic - modifying playing style of a chess engine. The base is new Rodent beta, marginally weaker than the official 1.6 version, but offering some new possibilities of tuning and indeed badly in need of such tuning. The reason is that evaluation function no longer uses lazy eval and there are some important changes to king safety.
http://www.pkoziol.cal24.pl/rodent/tunable.zip
This is a beta pre-release ans as such is unsuitable for tests on the rating lists. Official release is probably 4 to 6 months away. Package contains only executable files for 64-bit Windows. Source code is not enclosed, but it is freely available at https://github.com/nescitus/rodent_rewrite
In the meantime, if somebody wants to create a new, interesting personality, then I am willing to test it, perhaps creating a little rating list in the process.
My first try with the new options is Pawnsacker, with just two changes over the default: MaterialWeight = 90 and KingTropism = 50. It, well, sacks pawns from time to time and despite doing so is probably stronger than the default:
[pgn]
[Event "?"]
[Site "?"]
[Date "?"]
[Round "?"]
[White "Rodent Pawnsacker"]
[Black "Rodent 1.7.4"]
[Result "1-0"]
[TimeControl "240+1"]
[SetUp "1"]
[FEN "rnb2rk1/1pq1bppp/p3pn2/3p4/3NPP2/2N1B3/PPP1B1PP/R3QRK1 w - - 0 1"]
[Termination "normal"]
[PlyCount "91"]
[WhiteType "human"]
[BlackType "human"]
1. exd5 exd5 2. Bf3 Rd8 3. Qf2 Bg4 4. Rfe1 Bb4 5. Rab1 Bxf3 6. Qxf3 Bxc3 7.
bxc3 Qxc3 8. Qe2 Qc8 9. Rbc1 Qc7 10. Qf3 Re8 11. Red1 Ne4 12. Nf5 Nc3 13.
Rd3 Nxa2 14. Nxg7 Kxg7 15. Qxd5 Nxc1 16. Qg5+ Kf8 17. Bc5+ Re7 18. Bxe7+
Qxe7 19. Rd8+ Qxd8 20. Qxd8+ Kg7 21. Qg5+ Kh8 22. Qe7 Nc6 23. Qxb7 Re8 24.
Qxf7 Re1+ 25. Kf2 Re2+ 26. Kf3 Ne7 27. f5 h6 28. f6 Nf5 29. Qf8+ Kh7 30. f7
Nd4+ 31. Kg3 Nf5+ 32. Kh3 Ne7 33. Qe8 Rf2 34. Qxe7 Kg6 35. f8=N+ Rxf8 36.
Qxf8 a5 37. Qa3 a4 38. Qxc1 Kg7 39. Qa1+ Kg6 40. Qxa4 Kf6 41. Qe8 Kg5 42.
Qf7 h5 43. g3 Kh6 44. Qg8 h4 45. gxh4 Kh5 46. Qg5# 1-0
[/pgn]
To test Your personality I need 1) a list of changes in UCI options and 2) a game or two to know what to expect.
Rodent's new soul?
Moderator: Ras
-
- Posts: 911
- Joined: Mon Jan 15, 2007 11:23 am
- Location: Warsza
-
- Posts: 4851
- Joined: Sun Aug 10, 2008 3:15 pm
- Location: Philippines
Re: Rodent's new soul?
I would suggest you write descriptions of every options. Say what is PiecePressure? What is KingTropism? Does it include all pieces?
What is PawnStructure? Perhaps a little scoring details here and there.
What is PawnStructure? Perhaps a little scoring details here and there.
-
- Posts: 1265
- Joined: Sat Jul 05, 2014 7:54 am
- Location: Southwest USA
Re: Rodent's new soul?
Is w 32 coming?.........Thx AAR
-
- Posts: 911
- Joined: Mon Jan 15, 2007 11:23 am
- Location: Warsza
Re: Rodent's new soul?
QueenValue, RookValue, BishopValue, KnightValue, PawnValue, BishPair = material values, expressed in centipawns.
Please note that they are not *all* parameters used by Rodent in material evaluation. Engine uses a set of bad trade penalties (for being an exchange down, for having a rook vs two minor pieces and for having pawns for a piece), and bonuses prescribed by GM Larry Kaufman for knights with many pawns and for rook with a small amount of pawns.
MaterialWeight = percentage of material value used in actual evaluation. This idea comes from Rhetoric chess engine. Use with caution - 90% is enough to see a lot of pawn sacrifices.
OwnMobility = mobility value for engine side.
OppMobility = mobility value for non-engine side.
These may be set independently to create asymmetric evaluation. They also have an interesting side effect that if opponent mobility is bigger, engine will be slightly more inclined to exchange own pieces.
Evaluating mobility of minor pieces, Rodent does not count squares attacked by enemy pawns. On the other hand, it assumes that some own pieces are "transparent" (queen is transparent to bishop, rooks are transparent to each other etc.). This causes evaluation to be inexact (some blockages are undetected and there are some false positives in check threat detection) but overall it works best.
OwnAttack = value of engine's king attack
OppAttack = value of opponent's king attack
These two are percentage values for attacks on enemy king (once more set independently for each side). Generally speaking, Rodent counts "attack units" and uses their number as an index to a precomputed table. "Attack units" are awarded for attacking squares in enemy king zone (squares adjacent to enemy king plus two or three more squares towards enemy position) and check threats. Thus it might happen that a small attack value is scored even though no piece attacks king zone directly. Bonuses for zone attacks are 2(N/B), 3(R) and 5(Q) units per attacked square, Bonuses for checks threats are 2(N), 1(B), 3(R), 4(Q). There are also bonuses for contact check threats deemed safe by static exchange evaluator: 4 units for a rook contact check threat and 8 units for queen contact check threat. These are scored at most once, i.e. having two queen contact check threats counts as one. Rodent adds some attack units for certain piece combinations participating in the attack and for attacking the same square by rook+minor, two rooks or rook+queen. Table used for scoring was derived from Stockfish and rescaled to centipawns, thus maximum king attack score is 500 centipawns. Way of counting attack units is however different. Rodent does not evaluate attacks for the side that has no queen, but has no limit for minimal number of attackers.
KingTropism = percentage of value awarded for piece proximity to enemy king. Pieces that are far get a penalty, those that are near get a bonus, different weights are used for each piece (there ar two sets: for midgame and for endgame). Exact values are derived from GambitFruit. Initially I thought that it is only a "flavour" option, but for the two personalities I tested so far low values tend to score slightly better than 0.
PiecePressue = weight for a bonus for attacking enemy pieces. It grows bigger for weaker attackers and "fatter" victims. Increasing it will probably weaken the engine, but who knows?
PawnStructure = percentage of penalty for isolated, backward, doubled and too advanced pawns, as well as for a bonuses for pawn center.
PassedPawns = percentage of bonus for passed and candidate passed pawns. Engine increases this bonus for connected passers, decreases it for blocked passers and makes a correction for control of a stop square.
BookFilter = irrelevant for eval tuning, influences usage of Polyglot books by eliminating moves with the value lesser than a given percentage of best move's value.
Contempt = midgame draw score, gravitating towards 0 in a pawn endgame. Default "12" means that in the opening position Rodent will prefer to be 11 centipawns behind than to accept a draw by repetition.
I was also thinking of creating a weight for piece/square tables, and for miscellaneous factors, separate for minor and major pieces. Perhaps they will be added at a later stage. If someone thinks that some more variables would be useful, I'm all ears.
Please note that they are not *all* parameters used by Rodent in material evaluation. Engine uses a set of bad trade penalties (for being an exchange down, for having a rook vs two minor pieces and for having pawns for a piece), and bonuses prescribed by GM Larry Kaufman for knights with many pawns and for rook with a small amount of pawns.
MaterialWeight = percentage of material value used in actual evaluation. This idea comes from Rhetoric chess engine. Use with caution - 90% is enough to see a lot of pawn sacrifices.
OwnMobility = mobility value for engine side.
OppMobility = mobility value for non-engine side.
These may be set independently to create asymmetric evaluation. They also have an interesting side effect that if opponent mobility is bigger, engine will be slightly more inclined to exchange own pieces.
Evaluating mobility of minor pieces, Rodent does not count squares attacked by enemy pawns. On the other hand, it assumes that some own pieces are "transparent" (queen is transparent to bishop, rooks are transparent to each other etc.). This causes evaluation to be inexact (some blockages are undetected and there are some false positives in check threat detection) but overall it works best.
OwnAttack = value of engine's king attack
OppAttack = value of opponent's king attack
These two are percentage values for attacks on enemy king (once more set independently for each side). Generally speaking, Rodent counts "attack units" and uses their number as an index to a precomputed table. "Attack units" are awarded for attacking squares in enemy king zone (squares adjacent to enemy king plus two or three more squares towards enemy position) and check threats. Thus it might happen that a small attack value is scored even though no piece attacks king zone directly. Bonuses for zone attacks are 2(N/B), 3(R) and 5(Q) units per attacked square, Bonuses for checks threats are 2(N), 1(B), 3(R), 4(Q). There are also bonuses for contact check threats deemed safe by static exchange evaluator: 4 units for a rook contact check threat and 8 units for queen contact check threat. These are scored at most once, i.e. having two queen contact check threats counts as one. Rodent adds some attack units for certain piece combinations participating in the attack and for attacking the same square by rook+minor, two rooks or rook+queen. Table used for scoring was derived from Stockfish and rescaled to centipawns, thus maximum king attack score is 500 centipawns. Way of counting attack units is however different. Rodent does not evaluate attacks for the side that has no queen, but has no limit for minimal number of attackers.
KingTropism = percentage of value awarded for piece proximity to enemy king. Pieces that are far get a penalty, those that are near get a bonus, different weights are used for each piece (there ar two sets: for midgame and for endgame). Exact values are derived from GambitFruit. Initially I thought that it is only a "flavour" option, but for the two personalities I tested so far low values tend to score slightly better than 0.
PiecePressue = weight for a bonus for attacking enemy pieces. It grows bigger for weaker attackers and "fatter" victims. Increasing it will probably weaken the engine, but who knows?
PawnStructure = percentage of penalty for isolated, backward, doubled and too advanced pawns, as well as for a bonuses for pawn center.
PassedPawns = percentage of bonus for passed and candidate passed pawns. Engine increases this bonus for connected passers, decreases it for blocked passers and makes a correction for control of a stop square.
BookFilter = irrelevant for eval tuning, influences usage of Polyglot books by eliminating moves with the value lesser than a given percentage of best move's value.
Contempt = midgame draw score, gravitating towards 0 in a pawn endgame. Default "12" means that in the opening position Rodent will prefer to be 11 centipawns behind than to accept a draw by repetition.
I was also thinking of creating a weight for piece/square tables, and for miscellaneous factors, separate for minor and major pieces. Perhaps they will be added at a later stage. If someone thinks that some more variables would be useful, I'm all ears.
Last edited by PK on Tue Nov 18, 2014 12:16 pm, edited 1 time in total.
Pawel Koziol
http://www.pkoziol.cal24.pl/rodent/rodent.htm
http://www.pkoziol.cal24.pl/rodent/rodent.htm
-
- Posts: 911
- Joined: Mon Jan 15, 2007 11:23 am
- Location: Warsza
Re: Rodent's new soul?
32-bit version will be added on Wendesday evening. Right now my old laptop (with MSVC 2010) is in different town than me.
Pawel Koziol
http://www.pkoziol.cal24.pl/rodent/rodent.htm
http://www.pkoziol.cal24.pl/rodent/rodent.htm
-
- Posts: 4851
- Joined: Sun Aug 10, 2008 3:15 pm
- Location: Philippines
Re: Rodent's new soul?
MaterialWeight 95Pawel wrote:To test Your personality I need 1) a list of changes in UCI options and 2) a game or two to know what to expect.
OwnMobility 120
OwnAttack 500
PiecePressue 35
PawnStructure 90
Contempt 180
A style that prefers to attack, it is willing to accept around 2 pawns behind
than to accept a repetition. It does not care much about pawn structure as long as its mobility and piece pressure are there.
Sample game. This style is intended against human, KH = King hunter. I would suggest to increase the OwnAttack and OppAttack to 10000 max value. I have this similar option called OffensivePercent and DefensivePercent. These options have a good impact to alter the style of engine play.
[pgn]
[Event "Rodent style test 1"]
[Site "Home"]
[Date "2014.11.19"]
[Round "?"]
[White "Rodent_beta64"]
[Black "Rodent_beta64 KH"]
[Result "1-0"]
[BlackElo "2800"]
[ECO "C11"]
[Opening "French"]
[Time "09:16:26"]
[Variation "Burn, 6.Bxf6 gxf6 7.Nf3 f5"]
[WhiteElo "2800"]
[TimeControl "40/300:40/300:40/300"]
[Termination "adjudication"]
[PlyCount "58"]
[WhiteType "program"]
[BlackType "program"]
1. d4 e6 2. e4 d5 3. Nc3 Nf6 4. Bg5 dxe4 5. Nxe4 Be7 6. Bxf6 gxf6 7. Nf3 f5
8. Nc3 a6 9. Qd2 {+0.24/16 7} b5 {+0.04/17 7} 10. Qh6 {+0.20/16 9} Bb7
{+0.72/17 11} 11. Be2 {+0.04/17 8} b4 {+0.36/16 9} 12. Na4 {+0.12/18 9} Bf8
{+0.44/16 9} 13. Qd2 {+0.12/17 7} Rg8 {+0.68/17 8} 14. O-O {-0.04/17 7} Qd5
{+2.72/15 9} 15. a3 {-0.08/15 7} Qe4 {+2.68/14 9} 16. h3 {+0.04/15 9} Bd5
{+1.84/14 8} 17. Kh1 {+0.80/16 7} Rxg2 {+2.08/15 9} 18. Kxg2 {+3.20/16 5}
Qh4 {-0.44/16 9} 19. axb4 {+4.56/17 7} Bh6 {-1.84/16 8} 20. Qc3 {+4.88/18
7} Nc6 {+0.16/15 7} 21. Bc4 {+5.48/18 8} Ke7 {-0.44/17 7} 22. Bxd5
{+6.12/19 6} Rg8+ {-4.20/17 5} 23. Kh1 {+6.12/19 6} Qxh3+ {-4.36/20 12} 24.
Nh2 {+5.16/4 0} Qh4 {-4.44/20 10} 25. f4 {+8.20/17 11} Bxf4 {-5.28/17 9}
26. Rxf4 {+8.64/20 8} Qxf4 {-6.40/18 9} 27. Qc5+ {+8.92/20 17} Kd8
{-7.52/19 11} 28. Qxc6 {+8.96/20 11} Ke7 {-7.56/20 9} 29. Nc5 {+9.04/19 10}
Qd6 {-7.80/19 7 Arena Adjudication} 1-0
[/pgn]
-
- Posts: 2287
- Joined: Sat Jun 02, 2012 2:13 am
Re: Rodent's new soul?
Thanks for providing this tunable version, Pawel. 
As part of the pawn structure (or king safety) evaluation term, have you considered giving a bonus to pawn breaks/levers on the side of the board where the enemy King is? Correlating the size of the bonus to the rank of the pawn might make sense.
I would also like to suggest a king safety penalty for a King located to the short-side of an own pawn chain (of at least 3 pawns). For example, with a pawn chain on f2-e3-d4(-c5), the White King should incur a penalty if it sits on the g- or h-files. Such a penalty should be correlated to the amount of material left on the board -- with less material, the lesser the penalty.
In my experience, a King placed in such a way is highly vulnerable, but most engines don't evaluate it that way. The danger usually becomes more apparent when a skilled human player employs an anti-computer opening/ flank attack strategy, such as in the King's Indian and Dutch Defenses.
If implemented in a good way, the above could encourage more pawn storms on the opponent's king side, and could surprise a lot of engines unprepared to meet such attacks. Such a human-like style would be welcome by many humans looking for a more realistic sparring partner.
An engine capable of playing this way need not be the strongest in the world to be of tremendous value! An engine rated above 2700 is already as strong as the human SuperGMs of today. To have an engine of 2700+ strength, but also with a very human-like style, is every bit as much an achievement as having an engine that's #1 (or near) on the computer lists.
Of course, it's quite possible you've tried these things (any many others) before, and I suspect it may be very difficult to get them exactly right. Above all, please don't be afraid to give up some engine-vs-engine strength for the sake of gaining engine-vs-human style+strength!
Regards,
CL

As part of the pawn structure (or king safety) evaluation term, have you considered giving a bonus to pawn breaks/levers on the side of the board where the enemy King is? Correlating the size of the bonus to the rank of the pawn might make sense.
I would also like to suggest a king safety penalty for a King located to the short-side of an own pawn chain (of at least 3 pawns). For example, with a pawn chain on f2-e3-d4(-c5), the White King should incur a penalty if it sits on the g- or h-files. Such a penalty should be correlated to the amount of material left on the board -- with less material, the lesser the penalty.
In my experience, a King placed in such a way is highly vulnerable, but most engines don't evaluate it that way. The danger usually becomes more apparent when a skilled human player employs an anti-computer opening/ flank attack strategy, such as in the King's Indian and Dutch Defenses.
If implemented in a good way, the above could encourage more pawn storms on the opponent's king side, and could surprise a lot of engines unprepared to meet such attacks. Such a human-like style would be welcome by many humans looking for a more realistic sparring partner.
An engine capable of playing this way need not be the strongest in the world to be of tremendous value! An engine rated above 2700 is already as strong as the human SuperGMs of today. To have an engine of 2700+ strength, but also with a very human-like style, is every bit as much an achievement as having an engine that's #1 (or near) on the computer lists.
Of course, it's quite possible you've tried these things (any many others) before, and I suspect it may be very difficult to get them exactly right. Above all, please don't be afraid to give up some engine-vs-engine strength for the sake of gaining engine-vs-human style+strength!
Regards,
CL
PK wrote:QueenValue, RookValue, BishopValue, KnightValue, PawnValue, BishPair = material values, expressed in centipawns.
Please note that they are not *all* parameters used by Rodent in material evaluation. Engine uses a set of bad trade penalties (for being an exchange down, for having a rook vs two minor pieces and for having pawns for a piece), and bonuses prescribed by GM Larry Kaufman for knights with many pawns and for rook with a small amount of pawns.
MaterialWeight = percentage of material value used in actual evaluation. This idea comes from Rhetoric chess engine. Use with caution - 90% is enough to see a lot of pawn sacrifices.
OwnMobility = mobility value for engine side.
OppMobility = mobility value for non-engine side.
These may be set independently to create asymmetric evaluation. They also have an interesting side effect that if opponent mobility is bigger, engine will be slightly more inclined to exchange own pieces.
Evaluating mobility of minor pieces, Rodent does not count squares attacked by enemy pawns. On the other hand, it assumes that some own pieces are "transparent" (queen is transparent to bishop, rooks are transparent to each other etc.). This causes evaluation to be inexact (some blockages are undetected and there are some false positives in check threat detection) but overall it works best.
OwnAttack = value of engine's king attack
OppAttack = value of opponent's king attack
These two are percentage values for attacks on enemy king (once more set independently for each side). Generally speaking, Rodent counts "attack units" and uses their number as an index to a precomputed table. "Attack units" are awarded for attacking squares in enemy king zone (squares adjacent to enemy king plus two or three more squares towards enemy position) and check threats. Thus it might happen that a small attack value is scored even though no piece attacks king zone directly. Bonuses for zone attacks are 2(N/B), 3(R) and 5(Q) units per attacked square, Bonuses for checks threats are 2(N), 1(B), 3(R), 4(Q). There are also bonuses for contact check threats deemed safe by static exchange evaluator: 4 units for a rook contact check threat and 8 units for queen contact check threat. These are scored at most once, i.e. having two queen contact check threats counts as one. Rodent adds some attack units for certain piece combinations participating in the attack and for attacking the same square by rook+minor, two rooks or rook+queen. Table used for scoring was derived from Stockfish and rescaled to centipawns, thus maximum king attack score is 500 centipawns. Way of counting attack units is however different. Rodent does not evaluate attacks for the side that has no queen, but has no limit for minimal number of attackers.
KingTropism = percentage of value awarded for piece proximity to enemy king. Pieces that are far get a penalty, those that are near get a bonus, different weights are used for each piece (there ar two sets: for midgame and for endgame). Exact values are derived from GambitFruit. Initially I thought that it is only a "flavour" option, but for the two personalities I tested so far low values tend to score slightly better than 0.
PiecePressue = weight for a bonus for attacking enemy pieces. It grows bigger for weaker attackers and "fatter" victims. Increasing it will probably weaken the engine, but who knows?
PawnStructure = percentage of penalty for isolated, backward, doubled and too advanced pawns, as well as for a bonuses for pawn center.
PassedPawns = percentage of bonus for passed and candidate passed pawns. Engine increases this bonus for connected passers, decreases it for blocked passers and makes a correction for control of a stop square.
BookFilter = irrelevant for eval tuning, influences usage of Polyglot books by eliminating moves with the value lesser than a given percentage of best move's value.
Contempt = midgame draw score, gravitating towards 0 in a pawn endgame. Default "12" means that in the opening position Rodent will prefer to be 11 centipawns behind than to accept a draw by repetition.
I was also thinking of creating a weight for piece/square tables, and for miscellaneous factors, separate for minor and major pieces. Perhaps they will be added at a later stage. If someone thinks that some more variables would be useful, I'm all ears.
-
- Posts: 911
- Joined: Mon Jan 15, 2007 11:23 am
- Location: Warsza
Re: Rodent's new soul?
KH personality sounds fun and is definately needed in a menagerie! It should probably get a XIX-th century opening book (BTW I have found a nice collection of Polyglot books by Pawel Hase: http://www.chesspraga.cz/spikebook.htm Most of them come from 2008, some from 2010, but as far as impersonating XIXth or XXth century players it is OK)
Yesterday I made something like that:
KingTropism 50
OppAttack 100
OwnAttack 105
OppMobility 150
OwnMobility 110
MaterialWeight 90
OppMobility was a slip of a hand (I intended to type 105), but it seems to work very nicely. I gave it Kasparov's opening book and played some 2m + 2s games.
[pgn]
[Event "XIXth"]
[Site "PAWEL"]
[Date "2014.11.18"]
[Round "5"]
[White "Rodent_new"]
[Black "Rodent_old"]
[Result "1-0"]
[BlackElo "2200"]
[ECO "C01"]
[Opening "French"]
[Time "22:04:55"]
[Variation "Exchange, 4.Nf3 Bd6 5.Bd3"]
[WhiteElo "2800"]
[TimeControl "120+2"]
[Termination "adjudication"]
[PlyCount "111"]
[WhiteType "human"]
[BlackType "human"]
1. e4 e6 2. d4 d5 3. exd5 exd5 4. Nf3 Bd6 5. c4 c6 6. Nc3 Ne7 7. Bd3 O-O 8.
O-O dxc4 9. Bxc4 Nd7 10. Bd3 {(Bc4d3 Ne7g6 Bc1g5 Nd7f6 Nc3e4 Bc8e6 Ne4xd6
Qd8xd6 Bg5xf6 g7xf6 Qd1c2 Be6d5 Qc2c5 Qd6xc5 d4xc5 Bd5xf3 g2xf3) +0.12/13
4} Nb6 {(Nd7b6 Qd1c2 Ne7g6 Bc1g5 Qd8c7) -0.24/15 5} 11. Re1 {(Rf1e1 Ne7d5
Nf3g5 f7f5 Nc3xd5 Nb6xd5 Qd1h5 h7h6 Ng5e6 Bc8xe6 Re1xe6 Nd5f4 Bc1xf4
Bd6xf4) +0.12/13 5} Ned5 {(Ne7d5 Qd1c2 h7h6 a2a3 Bc8e6 Bc1d2 Bd6f4 Nf3e5)
-0.36/14 5} 12. Ne5 {(Nf3e5 Nd5b4 Bd3e4) +0.08/13 5} g6 {(g7g6 Bc1h6 Rf8e8)
-0.24/13 5} 13. Bh6 {(Bc1h6 Rf8e8 Qd1f3 Bd6xe5 Re1xe5 Re8xe5 d4xe5 Qd8h4
Nc3xd5 Nb6xd5 Bh6e3 Bc8e6) +0.32/12 5} Re8 {(Rf8e8 Qd1f3 Bc8e6 Nc3e4 f7f6
Ne4xd6 Qd8xd6 Ne5c4 Nb6xc4 Bd3xc4 b7b5 Bc4d3 Qd6c7 Qf3e4) -0.24/14 4} 14.
Qf3 {(Qd1f3 Bc8e6 Nc3e4 Bd6e7 Ne4c5 Be7xc5 d4xc5 Nb6a4 Bd3e4 Na4xc5)
+0.28/13 5} Be6 {(Bc8e6) -0.28/14 6} 15. Qg3 {(Qf3g3 Bd6c7) +0.12/12 5} Nb4
{(Nd5b4 Bd3e4 Nb6c4 b2b3 Nc4xe5 d4xe5 Bd6c5 Re1d1 Nb4d5 Ra1c1 Bc5b4 Nc3xd5
c6xd5) -0.12/13 4} 16. Be4 {(Bd3e4 Nb4d5) -0.12/13 5} N4d5 {(Nb4d5 a2a3
Nb6c4 Ra1b1 Bd6c7 Be4d3 Nd5xc3 b2xc3 Bc7xe5 d4xe5 Qd8c7 Bd3xc4 Be6xc4)
-0.12/13 4} 17. Re2 {(Re1e2 Nb6c4 Ra1e1 Nc4xe5 d4xe5 Bd6c5 Re2d2) 0.00/12
3} Nc4 {(Nb6c4 Ra1e1 Nc4xe5 d4xe5 Bd6c5 a2a3 Nd5xc3 Qg3xc3 Qd8b6 Re2d2
Ra8d8) +0.08/13 4} 18. f4 {(f2f4 Nd5f6 Ra1d1 Nf6xe4 Nc3xe4) 0.00/13 5} Qb6
{(Qd8b6 Qg3f2 Nd5f6 h2h3 Nf6xe4 Nc3xe4 Bd6e7 Bh6g5 Nc4xe5 f4xe5 Be6c4 Ra1f1
Bc4xa2 Bg5xe7 Re8xe7) -0.20/12 3} 19. Qf2 {(Qg3f2 Nd5f6 h2h3 Nf6xe4 Nc3xe4
Bd6e7 Bh6g5) +0.08/14 4} Nf6 {(Nd5f6 Be4f3 Bd6e7) -0.12/14 4} 20. h3 {(h2h3
Ra8d8 Be4f3 Bd6f8 Bh6g5 Bf8g7 Ne5xc4 Be6xc4 Re2xe8+ Rd8xe8 b2b3 Bc4d5
Nc3xd5 Nf6xd5) +0.04/13 3} Bc7 {(Bd6c7 Be4f3 Nc4d6 Bh6g5 Nf6d5) -0.20/12 3}
21. Bd3 {(Be4d3 Nc4d6 g2g4) +0.80/14 5} Nd6 {(Nc4d6 g2g4 Kg8h8 Bh6g5 Bc7d8
f4f5 g6xf5 g4xf5 Be6d5) -0.48/14 4} 22. g4 {(g2g4 Nd6b5 Nc3xb5 c6xb5 f4f5
Be6d5 Ra1c1 Bc7xe5 d4xe5) +1.04/14 6} Kh8 {(Kg8h8 Ra1e1 Re8g8 Bh6g5 Bc7d8)
-0.28/13 4} 23. Bg5 {(Bh6g5) +0.40/12 4} Bd8 {(Bc7d8 Ra1e1 Re8g8 Qf2e3
Qb6a5 Ne5f3 Nf6d7 a2a3 Bd8xg5 Nf3xg5) -0.32/14 5} 24. Na4 {(Nc3a4 Qb6b4
Na4c5 Nf6d5 Nc5xe6 f7xe6 Ne5xg6+ h7xg6 Qf2h4+ Kh8g8 Bd3xg6 Qb4xd4+ Re2f2
Qd4g7 Qh4h5) +0.24/12 3} Qc7 {(Qb6c7 Na4c5 Nf6d5 Nc5xe6 f7xe6 Bg5h6 Bd8f6
Ra1c1 Nd6f7 Ne5xf7+ Qc7xf7 Bd3e4) -0.24/14 4} 25. Nc5 {(Na4c5 Nf6d5 Ra1f1)
+0.36/12 3} Nd5 {(Nf6d5 Bg5xd8 Qc7xd8 f4f5 g6xf5 Bd3xf5 Re8f8 Bf5c2 Nd5b4
b2b3 Be6d5) -0.40/13 4} 26. Rae1 {(Ra1e1 Re8f8 Bg5xd8 Qc7xd8 Bd3xg6 Qd8f6
f4f5 f7xg6 Nc5xe6 Rf8g8) +0.44/12 3} Nb4 {(Nd5b4 Ne5xg6+ h7xg6 Re2xe6
Re8xe6 Qf2h4+ Kh8g8 Nc5xe6 f7xe6 Bd3xg6 Qc7g7 Bg5xd8 Qg7xg6 Bd8f6) -0.48/12
3} 27. Nxe6 {(Nc5xe6 f7xe6 Ne5xg6+ Kh8g8 Bg5xd8 Ra8xd8 Ng6e5 Qc7g7)
+1.00/12 3} Rxe6 {(Re8xe6 Bg5xd8 Ra8xd8 Qf2h4 Nb4xd3 Ne5xd3 Re6xe2 Re1xe2
Rd8e8 Qh4f6+ Kh8g8) -0.56/15 4} 28. Bxd8 {(Bg5xd8 Ra8xd8 Qf2h4 Nb4xd3
Ne5xd3 Rd8e8 Re2xe6 f7xe6 Qh4f6+ Qc7g7 Qf6e5 Qg7xe5 f4xe5 Nd6c4) +0.48/13
3} Qxd8 {(Qc7xd8 Bd3b1 Kh8g8 f4f5 Re6f6) -0.56/15 3} 29. Bb1 {(Bd3b1 Kh8g8
f4f5 Re6f6 Qf2h4 Nb4d5 Kg1h2 Qd8b6 Ne5d7 Qb6xd4 Qh4h6 g6xf5 Nd7xf6+ Qd4xf6
Qh6xf6 Nd5xf6 Bb1xf5 Nd6xf5 g4xf5) +0.76/14 3} Kg8 {(Kh8g8 f4f5 Re6e8
Ne5xf7 Re8xe2 Nf7h6+ Kg8g7 Re1xe2 Kg7xh6 Re2e6) -0.56/15 5} 30. f5 {(f4f5
Re6f6 a2a3 Nb4d5 Qf2h4 Qd8b6 Ne5d7 Qb6xd4+ Qh4f2 Qd4xf2+ Re2xf2 g6g5
Nd7xf6+ Nd5xf6 Bb1d3 Nf6d5 f5f6) +0.88/14 3} Re8 {(Re6e8 Ne5xf7 Re8xe2
Nf7h6+ Kg8g7 Re1xe2 Kg7xh6 f5xg6 Kh6g7 a2a3 Qd8f6 Qf2xf6+ Kg7xf6 g4g5+
Kf6g7 Re2e6 Nb4d5 Re6xd6) -1.24/15 4} 31. fxg6 {(f5xg6 f7xg6 Ne5xg6 h7xg6
Re2xe8+ Nd6xe8 Bb1xg6 Ne8g7 Qf2f4 Qd8h4) +0.72/15 5} fxg6 {(f7xg6 Ne5xg6
h7xg6 Re2xe8+ Nd6xe8 Bb1xg6 Ne8g7 Qf2f7+ Kg8h8 Qf7xb7 Qd8xd4+ Kg1h1 Ra8f8
Qb7e7 Rf8f6 Bg6e4 Qd4xb2) -1.80/14 3} 32. Nxg6 {(Ne5xg6 h7xg6 Re2xe8+
Nd6xe8 Bb1xg6 Ne8g7 a2a3 Nb4d5 Qf2f7+ Kg8h8 Qf7xb7 Ra8b8 Qb7f7 Qd8f6 Qf7xf6
Nd5xf6) +0.88/13 3} hxg6 {(h7xg6 Re2e6 Re8xe6 Re1xe6 g6g5 Re6g6+ Kg8h8
Qf2e1 Nd6f7 Qe1xb4) -1.48/15 3} 33. Re6 {(Re2e6 Re8xe6 Re1xe6 g6g5 Re6g6+
Kg8h8 Qf2e1 Nd6f7 Qe1xb4 Qd8b6 Qb4xb6 a7xb6 a2a3 Ra8e8 Bb1f5 Kh8h7)
+1.44/15 3} Rxe6 {(Re8xe6 Re1xe6) -1.40/15 3} 34. Rxe6 {(Re1xe6 g6g5 Re6g6+
Kg8h8) +1.32/16 3} Ne8 {(Nd6e8 Bb1xg6 Qd8d7 Qf2e3 Ne8g7 Re6e7 Nb4d5 Re7xd7
Nd5xe3 Kg1f2 Ne3d5 Bg6f7+ Kg8f8 Bf7xd5 c6xd5 Rd7xb7) -1.12/15 3} 35. Bxg6
{(Bb1xg6 Qd8d7 Bg6f5 Ne8g7 Re6g6 Qd7d8 Qf2e3 Qd8c7 Bf5e6+ Kg8f8 Rg6f6+
Kf8e8 Be6c4+ Qc7e7 Qe3xe7+ Ke8xe7 Rf6f7+ Ke7d6 Rf7xb7 c6c5 Rb7xg7 c5xd4)
+2.72/15 3} Nd6 {(Ne8d6 Re6xd6 Qd8e7 Rd6f6 Nb4d5 Rf6f7 Qe7e3 Qf2xe3 Nd5xe3
Rf7xb7 Ne3d5 h3h4 Nd5f4 Bg6f7+ Kg8f8 Bf7c4) -4.32/15 3} 36. Rxd6 {(Re6xd6
Qd8e7 Rd6f6 Nb4d5 Bg6f7+ Kg8g7 Rf6g6+ Kg7h8 Bf7xd5 c6xd5 g4g5) +4.52/17 3}
Qe7 {(Qd8e7 Rd6f6 Nb4d5 Rf6f7 Qe7e3 Bg6h7+ Kg8h8 Qf2xe3 Nd5xe3 Rf7xb7 Ra8d8
Bh7e4 Rd8xd4 Be4xc6 Rd4d6 Bc6e4) -4.56/15 3} 37. Rf6 {(Rd6f6 Ra8f8 Rf6xf8+
Qe7xf8 Qf2h4 Qf8f4 Qh4h7+ Kg8f8 a2a3 Qf4g3+ Kg1f1 Qg3f3+ Kf1e1 Qf3e3+ Ke1d1
Qe3xd4+ Kd1e2 Qd4xb2+ Ke2f1 Qb2c1+ Kf1g2 Qc1d2+ Kg2g1 Qd2e1+ Kg1h2 Qe1f2+
Kh2h1) +3.76/16 3} Rf8 {(Ra8f8 Rf6xf8+ Qe7xf8) -3.28/15 3} 38. Rxf8+
{(Rf6xf8+ Qe7xf8 Qf2h4 Qf8f4 Qh4h7+ Kg8f8 Qh7h8+ Kf8e7) +4.44/14 5} Qxf8
{(Qe7xf8 Qf2e1 Kg8g7 Bg6f5 Qf8d6) -3.28/14 5} 39. Qe1 {(Qf2e1 Nb4d5 Bg6f5
Qf8e7 Bf5e6+ Kg8g7 Qe1e5+ Qe7f6 h3h4 a7a6 Be6f5 Kg7f7 h4h5 Qf6xe5 d4xe5
Kf7e7) +3.20/14 3} Qf6 {(Qf8f6 Qe1xb4 Qf6xg6 Qb4xb7 Qg6b1+ Kg1h2 Qb1xa2
Kh2g3 Qa2e6 Qb7b8+ Kg8f7) -3.12/15 2} 40. Qxb4 {(Qe1xb4 Qf6xg6 Qb4xb7
Qg6b1+ Kg1h2 Qb1xa2 Qb7b8+ Kg8h7 Qb8c7+ Kh7g8 Qc7d8+ Kg8f7 Qd8d7+ Kf7f8
Qd7f5+ Qa2f7) +3.00/14 3} Qxg6 {(Qf6xg6 Qb4xb7 Qg6b1+ Kg1f2 Qb1xa2 Kf2g3
Qa2e6 Qb7b8+ Kg8h7 Qb8c7+ Kh7g8 Qc7e5 Qe6f7 Qe5b8+ Kg8g7 h3h4 Kg7h7 Qb8e5
Qf7b3+ Kg3f4 Qb3xb2) -3.04/15 4} 41. Qxb7 {(Qb4xb7 Qg6b1+ Kg1f2 Qb1xa2
Qb7b8+ Kg8h7 Kf2g3 Qa2e6 Qb8c7+ Kh7g8 Qc7e5 Qe6b3+ Kg3h4 Qb3f7 g4g5 Kg8h7
Qe5f6 Qf7xf6 g5xf6) +2.92/14 5} Qb1+ {(Qg6b1+ Kg1f2 Qb1xa2 Qb7xc6 Qa2xb2+
Kf2e3 Qb2b3+ Ke3f4 Qb3f7+ Kf4g3 Qf7e7 Qc6g6+ Kg8f8 Qg6f5+ Kf8g7 Kg3f2 Qe7f7
Qf5xf7+ Kg7xf7 d4d5 a7a5 d5d6) -3.00/15 4} 42. Kf2 {(Kg1f2) +3.28/14 5}
Qxa2 {(Qb1xa2 h3h4 Qa2e6 Qb7b8+ Kg8h7 Qb8f4 Qe6g6 h4h5 Qg6d3 Qf4e3 Qd3xe3+
Kf2xe3 Kh7h6 Ke3f4) -3.20/14 3} 43. h4 {(h3h4 Qa2b1 Qb7c8+ Kg8g7 Qc8d7+
Kg7g8 Qd7e8+ Kg8g7 Qe8e7+ Kg7g8 Qe7d8+ Kg8h7 Qd8c7+ Kh7g8 Qc7b8+ Kg8f7
Qb8xa7+ Kf7e6 Qa7b8 Qb1e4 Qb8e8+ Ke6d5 Qe8xe4+ Kd5xe4) +3.16/14 3} Qe6
{(Qa2e6 Qb7b8+ Kg8h7 Qb8f4) -3.24/14 2} 44. Qb8+ {(Qb7b8+ Kg8h7 Qb8f4 Qe6b3
Qf4e4+ Kh7g7 Qe4e7+ Kg7h8 Qe7e8+ Kh8g7) +3.00/15 3} Kh7 {(Kg8h7 Qb8xa7+
Kh7g6 Qa7c5 Qe6e4 Qc5g5+ Kg6f7 h4h5 Qe4xd4+ Kf2f3) -3.44/14 3} 45. Qf4
{(Qb8f4 Qe6b3 Qf4c7+ Kh7g8 Qc7xc6 Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4e4
Qf8e7+ Ke4f5 a7a5) +3.04/15 3} Qb3 {(Qe6b3 Qf4c7+ Kh7h8 Qc7xc6 Qb3xb2+
Kf2e3 Qb2a3+ Ke3e4 Qa3e7+ Ke4f4 Qe7f7+ Kf4g3 Qf7e7 Qc6f3 a7a5 Kg3h3 a5a4
h4h5 a4a3 Qf3f4) -3.20/15 4} 46. Qc7+ {(Qf4c7+ Kh7g8 Qc7xc6 Qb3xb2+ Kf2e3
Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8a3+ Qc6f3 Qa3xf3+ Kg3xf3 Kg8f7 d4d5 a7a5 h4h5
a5a4 g4g5 a4a3 d5d6) +3.12/15 4} Kh8 {(Kh7h8 Qc7e5+ Kh8g8 Qe5e8+ Kg8g7
Qe8e2) -3.20/14 3} 47. Qd8+ {(Qc7d8+ Kh8g7 Qd8d7+ Kg7g8 Qd7xc6 Qb3xb2+
Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8a3+ Qc6f3 Qa3xf3+ Kg3xf3 Kg8f7 d4d5 a7a5
g4g5 a5a4 h4h5) +3.16/14 2} Kg7 {(Kh8g7 Qd8e7+ Kg7g8 Qe7e8+ Kg8g7 Qe8d7+
Kg7h8 Qd7xc6 Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8e7) -3.16/15 3} 48.
Qd7+ {(Qd8d7+ Kg7g8 Qd7xc6 Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8a3+
Qc6f3 Qa3d6+ Qf3f4 Qd6xf4+ Kg3xf4 Kg8f7 d4d5 a7a5 Kf4e5 a5a4 d5d6 a4a3)
+3.00/15 3} Kh8 {(Kg7h8 Qd7xc6 Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3
Qf8e7 Qc6h6+ Kh8g8 Qh6g6+ Kg8h8 Qg6h5+ Kh8g7 Qh5e5+ Qe7xe5+ d4xe5 a7a5
Kg3f3 a5a4 Kf3e4 a4a3 e5e6) -3.20/15 3} 49. Qxc6 {(Qd7xc6 Qb3xb2+ Kf2e3
Qb2a3+ Ke3e4 Qa3e7+ Ke4f5 Qe7h7+ Kf5f4 Qh7f7+ Kf4g3 Qf7e7 Qc6h6+ Kh8g8
Qh6g6+ Kg8h8 Qg6h5+ Kh8g7 Qh5e5+ Qe7xe5+ d4xe5 Kg7f7 h4h5 Kf7e6 Kg3f4)
+3.20/15 3} Qxb2+ {(Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8e7) -3.16/15
3} 50. Ke3 {(Kf2e3 Qb2a3+ Ke3e4 Qa3e7+ Ke4f5 Qe7h7+ Kf5f4 Qh7f7+ Kf4e3
Qf7e7+ Ke3f3 Qe7a3+ Kf3f4 Qa3f8+ Kf4g3 Qf8e7 Qc6h6+ Kh8g8 Qh6g6+ Kg8h8
Qg6h5+ Kh8g7 Qh5e5+ Qe7xe5+ d4xe5 a7a5 Kg3f3) +3.12/14 2} Qa3+ {(Qb2a3+
Ke3e4 Qa3e7+ Ke4f5 Qe7h7+ Kf5f4 Qh7f7+ Kf4g3 Qf7e7 Qc6h6+ Kh8g8 Kg3f4 a7a5
Qh6g6+ Kg8h8 Qg6h5+ Kh8g8 Qh5xa5 Qe7xh4 Qa5g5+ Qh4xg5+ Kf4xg5 Kg8g7)
-3.16/14 4} 51. Kf4 {(Ke3f4 Qa3f8+ Kf4e5 Kh8g7 h4h5 a7a5 d4d5 Qf8b8+ Ke5f5
Qb8f8+ Kf5g5 Qf8e7+ Kg5f4 a5a4 Qc6g6+ Kg7h8 d5d6 Qe7e2) +3.16/14 4} Qf8+
{(Qa3f8+ Kf4g3 Qf8e7 Qc6h6+ Kh8g8 Kg3f4 a7a5 Qh6g6+ Kg8f8 Qg6f5+ Qe7f7 d4d5
a5a4 d5d6 Qf7xf5+ Kf4xf5 a4a3 d6d7 Kf8e7) -3.08/14 3} 52. Ke5 {(Kf4e5)
+3.44/14 4} Qe7+ {(Qf8e7+ Qc6e6 Qe7xh4 Qe6f6+ Qh4xf6+ Ke5xf6 Kh8g8 d4d5
Kg8f8 g4g5 Kf8e8 g5g6 Ke8f8 d5d6 a7a5 d6d7) -3.24/13 3} 53. Qe6 {(Qc6e6)
+3.96/13 2} Qxh4 {(Qe7xh4 Qe6f6+ Qh4xf6+ Ke5xf6 Kh8g8 d4d5 Kg8f8 g4g5 Kf8e8
g5g6 Ke8f8 d5d6 Kf8g8 d6d7) -3.72/12 3} 54. Qf6+ {(Qe6f6+ Qh4xf6+ Ke5xf6
Kh8g8 d4d5 Kg8f8 d5d6 Kf8e8 Kf6e6 Ke8d8 g4g5 Kd8c8 d6d7+ Kc8c7 g5g6 Kc7c6
d7d8Q Kc6b5 Qd8d5+ Kb5b4 Qd5d4+ Kb4a3 g6g7 a7a5 g7g8Q a5a4 Qg8g3+ Ka3a2
Qd4xa4+ Ka2b2 Qg3a3+ Kb2b1) +25.44/24 3} Qxf6+ {(Qh4xf6+ Ke5xf6 Kh8g8 d4d5
Kg8f8 d5d6 Kf8e8 Kf6e6 Ke8d8 g4g5 Kd8c8 d6d7+ Kc8c7 g5g6 Kc7b6 d7d8Q+ Kb6c5
g6g7 Kc5b4 g7g8Q Kb4c3 Qg8g7+ Kc3c2 Qg7xa7 Kc2c3 Qa7c5+ Kc3b3 Qd8d3+ Kb3a4
Qc5a3+) -M15/23 2} 55. Kxf6 {(Ke5xf6 Kh8g8 g4g5 a7a5 d4d5 Kg8f8 g5g6 Kf8e8
Kf6e6 Ke8d8 d5d6 Kd8c8 d6d7+ Kc8c7 g6g7 Kc7b6 d7d8Q+ Kb6c5 g7g8Q Kc5c4
Qd8d5+ Kc4c3 Qg8g3+ Kc3c2 Qg3b3+ Kc2c1 Qd5g5+) +M14/24 2} Kg8 {(Kh8g8 d4d5
Kg8f8 d5d6 Kf8e8 Kf6e6 Ke8d8 g4g5 a7a5 g5g6 Kd8c8 d6d7+ Kc8c7 g6g7 Kc7b6
d7d8Q+ Kb6b5 g7g8Q Kb5b4 Qg8g4+ Kb4a3 Qd8d3+ Ka3a2 Qg4a4+ Ka2b2 Qa4a3+)
-M13/25 2} 56. g5 {(g4g5 a7a5 d4d5 Kg8f8 g5g6 Kf8e8 Kf6e6 Ke8d8 d5d6 Kd8c8
d6d7+ Kc8c7 g6g7 Kc7b6 d7d8Q+ Kb6c5 g7g8Q Kc5c4 Qd8d5+ Kc4c3 Qg8g3+ Kc3c2
Qg3b3+ Kc2c1 Qd5g5+) +M12/24 2 1-0 User Adjudication} 1-0
[/pgn]
I'm not sure if restricting opponent's mobility fits to Kasparov's style, but with his opening book the effect is nice.
As for pawn levers etc. I'm going to work on it soon. I've made a half-hearted attempt some time ago and failed. Perhaps reading Kmoch's book will help.
Yesterday I made something like that:
KingTropism 50
OppAttack 100
OwnAttack 105
OppMobility 150
OwnMobility 110
MaterialWeight 90
OppMobility was a slip of a hand (I intended to type 105), but it seems to work very nicely. I gave it Kasparov's opening book and played some 2m + 2s games.
[pgn]
[Event "XIXth"]
[Site "PAWEL"]
[Date "2014.11.18"]
[Round "5"]
[White "Rodent_new"]
[Black "Rodent_old"]
[Result "1-0"]
[BlackElo "2200"]
[ECO "C01"]
[Opening "French"]
[Time "22:04:55"]
[Variation "Exchange, 4.Nf3 Bd6 5.Bd3"]
[WhiteElo "2800"]
[TimeControl "120+2"]
[Termination "adjudication"]
[PlyCount "111"]
[WhiteType "human"]
[BlackType "human"]
1. e4 e6 2. d4 d5 3. exd5 exd5 4. Nf3 Bd6 5. c4 c6 6. Nc3 Ne7 7. Bd3 O-O 8.
O-O dxc4 9. Bxc4 Nd7 10. Bd3 {(Bc4d3 Ne7g6 Bc1g5 Nd7f6 Nc3e4 Bc8e6 Ne4xd6
Qd8xd6 Bg5xf6 g7xf6 Qd1c2 Be6d5 Qc2c5 Qd6xc5 d4xc5 Bd5xf3 g2xf3) +0.12/13
4} Nb6 {(Nd7b6 Qd1c2 Ne7g6 Bc1g5 Qd8c7) -0.24/15 5} 11. Re1 {(Rf1e1 Ne7d5
Nf3g5 f7f5 Nc3xd5 Nb6xd5 Qd1h5 h7h6 Ng5e6 Bc8xe6 Re1xe6 Nd5f4 Bc1xf4
Bd6xf4) +0.12/13 5} Ned5 {(Ne7d5 Qd1c2 h7h6 a2a3 Bc8e6 Bc1d2 Bd6f4 Nf3e5)
-0.36/14 5} 12. Ne5 {(Nf3e5 Nd5b4 Bd3e4) +0.08/13 5} g6 {(g7g6 Bc1h6 Rf8e8)
-0.24/13 5} 13. Bh6 {(Bc1h6 Rf8e8 Qd1f3 Bd6xe5 Re1xe5 Re8xe5 d4xe5 Qd8h4
Nc3xd5 Nb6xd5 Bh6e3 Bc8e6) +0.32/12 5} Re8 {(Rf8e8 Qd1f3 Bc8e6 Nc3e4 f7f6
Ne4xd6 Qd8xd6 Ne5c4 Nb6xc4 Bd3xc4 b7b5 Bc4d3 Qd6c7 Qf3e4) -0.24/14 4} 14.
Qf3 {(Qd1f3 Bc8e6 Nc3e4 Bd6e7 Ne4c5 Be7xc5 d4xc5 Nb6a4 Bd3e4 Na4xc5)
+0.28/13 5} Be6 {(Bc8e6) -0.28/14 6} 15. Qg3 {(Qf3g3 Bd6c7) +0.12/12 5} Nb4
{(Nd5b4 Bd3e4 Nb6c4 b2b3 Nc4xe5 d4xe5 Bd6c5 Re1d1 Nb4d5 Ra1c1 Bc5b4 Nc3xd5
c6xd5) -0.12/13 4} 16. Be4 {(Bd3e4 Nb4d5) -0.12/13 5} N4d5 {(Nb4d5 a2a3
Nb6c4 Ra1b1 Bd6c7 Be4d3 Nd5xc3 b2xc3 Bc7xe5 d4xe5 Qd8c7 Bd3xc4 Be6xc4)
-0.12/13 4} 17. Re2 {(Re1e2 Nb6c4 Ra1e1 Nc4xe5 d4xe5 Bd6c5 Re2d2) 0.00/12
3} Nc4 {(Nb6c4 Ra1e1 Nc4xe5 d4xe5 Bd6c5 a2a3 Nd5xc3 Qg3xc3 Qd8b6 Re2d2
Ra8d8) +0.08/13 4} 18. f4 {(f2f4 Nd5f6 Ra1d1 Nf6xe4 Nc3xe4) 0.00/13 5} Qb6
{(Qd8b6 Qg3f2 Nd5f6 h2h3 Nf6xe4 Nc3xe4 Bd6e7 Bh6g5 Nc4xe5 f4xe5 Be6c4 Ra1f1
Bc4xa2 Bg5xe7 Re8xe7) -0.20/12 3} 19. Qf2 {(Qg3f2 Nd5f6 h2h3 Nf6xe4 Nc3xe4
Bd6e7 Bh6g5) +0.08/14 4} Nf6 {(Nd5f6 Be4f3 Bd6e7) -0.12/14 4} 20. h3 {(h2h3
Ra8d8 Be4f3 Bd6f8 Bh6g5 Bf8g7 Ne5xc4 Be6xc4 Re2xe8+ Rd8xe8 b2b3 Bc4d5
Nc3xd5 Nf6xd5) +0.04/13 3} Bc7 {(Bd6c7 Be4f3 Nc4d6 Bh6g5 Nf6d5) -0.20/12 3}
21. Bd3 {(Be4d3 Nc4d6 g2g4) +0.80/14 5} Nd6 {(Nc4d6 g2g4 Kg8h8 Bh6g5 Bc7d8
f4f5 g6xf5 g4xf5 Be6d5) -0.48/14 4} 22. g4 {(g2g4 Nd6b5 Nc3xb5 c6xb5 f4f5
Be6d5 Ra1c1 Bc7xe5 d4xe5) +1.04/14 6} Kh8 {(Kg8h8 Ra1e1 Re8g8 Bh6g5 Bc7d8)
-0.28/13 4} 23. Bg5 {(Bh6g5) +0.40/12 4} Bd8 {(Bc7d8 Ra1e1 Re8g8 Qf2e3
Qb6a5 Ne5f3 Nf6d7 a2a3 Bd8xg5 Nf3xg5) -0.32/14 5} 24. Na4 {(Nc3a4 Qb6b4
Na4c5 Nf6d5 Nc5xe6 f7xe6 Ne5xg6+ h7xg6 Qf2h4+ Kh8g8 Bd3xg6 Qb4xd4+ Re2f2
Qd4g7 Qh4h5) +0.24/12 3} Qc7 {(Qb6c7 Na4c5 Nf6d5 Nc5xe6 f7xe6 Bg5h6 Bd8f6
Ra1c1 Nd6f7 Ne5xf7+ Qc7xf7 Bd3e4) -0.24/14 4} 25. Nc5 {(Na4c5 Nf6d5 Ra1f1)
+0.36/12 3} Nd5 {(Nf6d5 Bg5xd8 Qc7xd8 f4f5 g6xf5 Bd3xf5 Re8f8 Bf5c2 Nd5b4
b2b3 Be6d5) -0.40/13 4} 26. Rae1 {(Ra1e1 Re8f8 Bg5xd8 Qc7xd8 Bd3xg6 Qd8f6
f4f5 f7xg6 Nc5xe6 Rf8g8) +0.44/12 3} Nb4 {(Nd5b4 Ne5xg6+ h7xg6 Re2xe6
Re8xe6 Qf2h4+ Kh8g8 Nc5xe6 f7xe6 Bd3xg6 Qc7g7 Bg5xd8 Qg7xg6 Bd8f6) -0.48/12
3} 27. Nxe6 {(Nc5xe6 f7xe6 Ne5xg6+ Kh8g8 Bg5xd8 Ra8xd8 Ng6e5 Qc7g7)
+1.00/12 3} Rxe6 {(Re8xe6 Bg5xd8 Ra8xd8 Qf2h4 Nb4xd3 Ne5xd3 Re6xe2 Re1xe2
Rd8e8 Qh4f6+ Kh8g8) -0.56/15 4} 28. Bxd8 {(Bg5xd8 Ra8xd8 Qf2h4 Nb4xd3
Ne5xd3 Rd8e8 Re2xe6 f7xe6 Qh4f6+ Qc7g7 Qf6e5 Qg7xe5 f4xe5 Nd6c4) +0.48/13
3} Qxd8 {(Qc7xd8 Bd3b1 Kh8g8 f4f5 Re6f6) -0.56/15 3} 29. Bb1 {(Bd3b1 Kh8g8
f4f5 Re6f6 Qf2h4 Nb4d5 Kg1h2 Qd8b6 Ne5d7 Qb6xd4 Qh4h6 g6xf5 Nd7xf6+ Qd4xf6
Qh6xf6 Nd5xf6 Bb1xf5 Nd6xf5 g4xf5) +0.76/14 3} Kg8 {(Kh8g8 f4f5 Re6e8
Ne5xf7 Re8xe2 Nf7h6+ Kg8g7 Re1xe2 Kg7xh6 Re2e6) -0.56/15 5} 30. f5 {(f4f5
Re6f6 a2a3 Nb4d5 Qf2h4 Qd8b6 Ne5d7 Qb6xd4+ Qh4f2 Qd4xf2+ Re2xf2 g6g5
Nd7xf6+ Nd5xf6 Bb1d3 Nf6d5 f5f6) +0.88/14 3} Re8 {(Re6e8 Ne5xf7 Re8xe2
Nf7h6+ Kg8g7 Re1xe2 Kg7xh6 f5xg6 Kh6g7 a2a3 Qd8f6 Qf2xf6+ Kg7xf6 g4g5+
Kf6g7 Re2e6 Nb4d5 Re6xd6) -1.24/15 4} 31. fxg6 {(f5xg6 f7xg6 Ne5xg6 h7xg6
Re2xe8+ Nd6xe8 Bb1xg6 Ne8g7 Qf2f4 Qd8h4) +0.72/15 5} fxg6 {(f7xg6 Ne5xg6
h7xg6 Re2xe8+ Nd6xe8 Bb1xg6 Ne8g7 Qf2f7+ Kg8h8 Qf7xb7 Qd8xd4+ Kg1h1 Ra8f8
Qb7e7 Rf8f6 Bg6e4 Qd4xb2) -1.80/14 3} 32. Nxg6 {(Ne5xg6 h7xg6 Re2xe8+
Nd6xe8 Bb1xg6 Ne8g7 a2a3 Nb4d5 Qf2f7+ Kg8h8 Qf7xb7 Ra8b8 Qb7f7 Qd8f6 Qf7xf6
Nd5xf6) +0.88/13 3} hxg6 {(h7xg6 Re2e6 Re8xe6 Re1xe6 g6g5 Re6g6+ Kg8h8
Qf2e1 Nd6f7 Qe1xb4) -1.48/15 3} 33. Re6 {(Re2e6 Re8xe6 Re1xe6 g6g5 Re6g6+
Kg8h8 Qf2e1 Nd6f7 Qe1xb4 Qd8b6 Qb4xb6 a7xb6 a2a3 Ra8e8 Bb1f5 Kh8h7)
+1.44/15 3} Rxe6 {(Re8xe6 Re1xe6) -1.40/15 3} 34. Rxe6 {(Re1xe6 g6g5 Re6g6+
Kg8h8) +1.32/16 3} Ne8 {(Nd6e8 Bb1xg6 Qd8d7 Qf2e3 Ne8g7 Re6e7 Nb4d5 Re7xd7
Nd5xe3 Kg1f2 Ne3d5 Bg6f7+ Kg8f8 Bf7xd5 c6xd5 Rd7xb7) -1.12/15 3} 35. Bxg6
{(Bb1xg6 Qd8d7 Bg6f5 Ne8g7 Re6g6 Qd7d8 Qf2e3 Qd8c7 Bf5e6+ Kg8f8 Rg6f6+
Kf8e8 Be6c4+ Qc7e7 Qe3xe7+ Ke8xe7 Rf6f7+ Ke7d6 Rf7xb7 c6c5 Rb7xg7 c5xd4)
+2.72/15 3} Nd6 {(Ne8d6 Re6xd6 Qd8e7 Rd6f6 Nb4d5 Rf6f7 Qe7e3 Qf2xe3 Nd5xe3
Rf7xb7 Ne3d5 h3h4 Nd5f4 Bg6f7+ Kg8f8 Bf7c4) -4.32/15 3} 36. Rxd6 {(Re6xd6
Qd8e7 Rd6f6 Nb4d5 Bg6f7+ Kg8g7 Rf6g6+ Kg7h8 Bf7xd5 c6xd5 g4g5) +4.52/17 3}
Qe7 {(Qd8e7 Rd6f6 Nb4d5 Rf6f7 Qe7e3 Bg6h7+ Kg8h8 Qf2xe3 Nd5xe3 Rf7xb7 Ra8d8
Bh7e4 Rd8xd4 Be4xc6 Rd4d6 Bc6e4) -4.56/15 3} 37. Rf6 {(Rd6f6 Ra8f8 Rf6xf8+
Qe7xf8 Qf2h4 Qf8f4 Qh4h7+ Kg8f8 a2a3 Qf4g3+ Kg1f1 Qg3f3+ Kf1e1 Qf3e3+ Ke1d1
Qe3xd4+ Kd1e2 Qd4xb2+ Ke2f1 Qb2c1+ Kf1g2 Qc1d2+ Kg2g1 Qd2e1+ Kg1h2 Qe1f2+
Kh2h1) +3.76/16 3} Rf8 {(Ra8f8 Rf6xf8+ Qe7xf8) -3.28/15 3} 38. Rxf8+
{(Rf6xf8+ Qe7xf8 Qf2h4 Qf8f4 Qh4h7+ Kg8f8 Qh7h8+ Kf8e7) +4.44/14 5} Qxf8
{(Qe7xf8 Qf2e1 Kg8g7 Bg6f5 Qf8d6) -3.28/14 5} 39. Qe1 {(Qf2e1 Nb4d5 Bg6f5
Qf8e7 Bf5e6+ Kg8g7 Qe1e5+ Qe7f6 h3h4 a7a6 Be6f5 Kg7f7 h4h5 Qf6xe5 d4xe5
Kf7e7) +3.20/14 3} Qf6 {(Qf8f6 Qe1xb4 Qf6xg6 Qb4xb7 Qg6b1+ Kg1h2 Qb1xa2
Kh2g3 Qa2e6 Qb7b8+ Kg8f7) -3.12/15 2} 40. Qxb4 {(Qe1xb4 Qf6xg6 Qb4xb7
Qg6b1+ Kg1h2 Qb1xa2 Qb7b8+ Kg8h7 Qb8c7+ Kh7g8 Qc7d8+ Kg8f7 Qd8d7+ Kf7f8
Qd7f5+ Qa2f7) +3.00/14 3} Qxg6 {(Qf6xg6 Qb4xb7 Qg6b1+ Kg1f2 Qb1xa2 Kf2g3
Qa2e6 Qb7b8+ Kg8h7 Qb8c7+ Kh7g8 Qc7e5 Qe6f7 Qe5b8+ Kg8g7 h3h4 Kg7h7 Qb8e5
Qf7b3+ Kg3f4 Qb3xb2) -3.04/15 4} 41. Qxb7 {(Qb4xb7 Qg6b1+ Kg1f2 Qb1xa2
Qb7b8+ Kg8h7 Kf2g3 Qa2e6 Qb8c7+ Kh7g8 Qc7e5 Qe6b3+ Kg3h4 Qb3f7 g4g5 Kg8h7
Qe5f6 Qf7xf6 g5xf6) +2.92/14 5} Qb1+ {(Qg6b1+ Kg1f2 Qb1xa2 Qb7xc6 Qa2xb2+
Kf2e3 Qb2b3+ Ke3f4 Qb3f7+ Kf4g3 Qf7e7 Qc6g6+ Kg8f8 Qg6f5+ Kf8g7 Kg3f2 Qe7f7
Qf5xf7+ Kg7xf7 d4d5 a7a5 d5d6) -3.00/15 4} 42. Kf2 {(Kg1f2) +3.28/14 5}
Qxa2 {(Qb1xa2 h3h4 Qa2e6 Qb7b8+ Kg8h7 Qb8f4 Qe6g6 h4h5 Qg6d3 Qf4e3 Qd3xe3+
Kf2xe3 Kh7h6 Ke3f4) -3.20/14 3} 43. h4 {(h3h4 Qa2b1 Qb7c8+ Kg8g7 Qc8d7+
Kg7g8 Qd7e8+ Kg8g7 Qe8e7+ Kg7g8 Qe7d8+ Kg8h7 Qd8c7+ Kh7g8 Qc7b8+ Kg8f7
Qb8xa7+ Kf7e6 Qa7b8 Qb1e4 Qb8e8+ Ke6d5 Qe8xe4+ Kd5xe4) +3.16/14 3} Qe6
{(Qa2e6 Qb7b8+ Kg8h7 Qb8f4) -3.24/14 2} 44. Qb8+ {(Qb7b8+ Kg8h7 Qb8f4 Qe6b3
Qf4e4+ Kh7g7 Qe4e7+ Kg7h8 Qe7e8+ Kh8g7) +3.00/15 3} Kh7 {(Kg8h7 Qb8xa7+
Kh7g6 Qa7c5 Qe6e4 Qc5g5+ Kg6f7 h4h5 Qe4xd4+ Kf2f3) -3.44/14 3} 45. Qf4
{(Qb8f4 Qe6b3 Qf4c7+ Kh7g8 Qc7xc6 Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4e4
Qf8e7+ Ke4f5 a7a5) +3.04/15 3} Qb3 {(Qe6b3 Qf4c7+ Kh7h8 Qc7xc6 Qb3xb2+
Kf2e3 Qb2a3+ Ke3e4 Qa3e7+ Ke4f4 Qe7f7+ Kf4g3 Qf7e7 Qc6f3 a7a5 Kg3h3 a5a4
h4h5 a4a3 Qf3f4) -3.20/15 4} 46. Qc7+ {(Qf4c7+ Kh7g8 Qc7xc6 Qb3xb2+ Kf2e3
Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8a3+ Qc6f3 Qa3xf3+ Kg3xf3 Kg8f7 d4d5 a7a5 h4h5
a5a4 g4g5 a4a3 d5d6) +3.12/15 4} Kh8 {(Kh7h8 Qc7e5+ Kh8g8 Qe5e8+ Kg8g7
Qe8e2) -3.20/14 3} 47. Qd8+ {(Qc7d8+ Kh8g7 Qd8d7+ Kg7g8 Qd7xc6 Qb3xb2+
Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8a3+ Qc6f3 Qa3xf3+ Kg3xf3 Kg8f7 d4d5 a7a5
g4g5 a5a4 h4h5) +3.16/14 2} Kg7 {(Kh8g7 Qd8e7+ Kg7g8 Qe7e8+ Kg8g7 Qe8d7+
Kg7h8 Qd7xc6 Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8e7) -3.16/15 3} 48.
Qd7+ {(Qd8d7+ Kg7g8 Qd7xc6 Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8a3+
Qc6f3 Qa3d6+ Qf3f4 Qd6xf4+ Kg3xf4 Kg8f7 d4d5 a7a5 Kf4e5 a5a4 d5d6 a4a3)
+3.00/15 3} Kh8 {(Kg7h8 Qd7xc6 Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3
Qf8e7 Qc6h6+ Kh8g8 Qh6g6+ Kg8h8 Qg6h5+ Kh8g7 Qh5e5+ Qe7xe5+ d4xe5 a7a5
Kg3f3 a5a4 Kf3e4 a4a3 e5e6) -3.20/15 3} 49. Qxc6 {(Qd7xc6 Qb3xb2+ Kf2e3
Qb2a3+ Ke3e4 Qa3e7+ Ke4f5 Qe7h7+ Kf5f4 Qh7f7+ Kf4g3 Qf7e7 Qc6h6+ Kh8g8
Qh6g6+ Kg8h8 Qg6h5+ Kh8g7 Qh5e5+ Qe7xe5+ d4xe5 Kg7f7 h4h5 Kf7e6 Kg3f4)
+3.20/15 3} Qxb2+ {(Qb3xb2+ Kf2e3 Qb2a3+ Ke3f4 Qa3f8+ Kf4g3 Qf8e7) -3.16/15
3} 50. Ke3 {(Kf2e3 Qb2a3+ Ke3e4 Qa3e7+ Ke4f5 Qe7h7+ Kf5f4 Qh7f7+ Kf4e3
Qf7e7+ Ke3f3 Qe7a3+ Kf3f4 Qa3f8+ Kf4g3 Qf8e7 Qc6h6+ Kh8g8 Qh6g6+ Kg8h8
Qg6h5+ Kh8g7 Qh5e5+ Qe7xe5+ d4xe5 a7a5 Kg3f3) +3.12/14 2} Qa3+ {(Qb2a3+
Ke3e4 Qa3e7+ Ke4f5 Qe7h7+ Kf5f4 Qh7f7+ Kf4g3 Qf7e7 Qc6h6+ Kh8g8 Kg3f4 a7a5
Qh6g6+ Kg8h8 Qg6h5+ Kh8g8 Qh5xa5 Qe7xh4 Qa5g5+ Qh4xg5+ Kf4xg5 Kg8g7)
-3.16/14 4} 51. Kf4 {(Ke3f4 Qa3f8+ Kf4e5 Kh8g7 h4h5 a7a5 d4d5 Qf8b8+ Ke5f5
Qb8f8+ Kf5g5 Qf8e7+ Kg5f4 a5a4 Qc6g6+ Kg7h8 d5d6 Qe7e2) +3.16/14 4} Qf8+
{(Qa3f8+ Kf4g3 Qf8e7 Qc6h6+ Kh8g8 Kg3f4 a7a5 Qh6g6+ Kg8f8 Qg6f5+ Qe7f7 d4d5
a5a4 d5d6 Qf7xf5+ Kf4xf5 a4a3 d6d7 Kf8e7) -3.08/14 3} 52. Ke5 {(Kf4e5)
+3.44/14 4} Qe7+ {(Qf8e7+ Qc6e6 Qe7xh4 Qe6f6+ Qh4xf6+ Ke5xf6 Kh8g8 d4d5
Kg8f8 g4g5 Kf8e8 g5g6 Ke8f8 d5d6 a7a5 d6d7) -3.24/13 3} 53. Qe6 {(Qc6e6)
+3.96/13 2} Qxh4 {(Qe7xh4 Qe6f6+ Qh4xf6+ Ke5xf6 Kh8g8 d4d5 Kg8f8 g4g5 Kf8e8
g5g6 Ke8f8 d5d6 Kf8g8 d6d7) -3.72/12 3} 54. Qf6+ {(Qe6f6+ Qh4xf6+ Ke5xf6
Kh8g8 d4d5 Kg8f8 d5d6 Kf8e8 Kf6e6 Ke8d8 g4g5 Kd8c8 d6d7+ Kc8c7 g5g6 Kc7c6
d7d8Q Kc6b5 Qd8d5+ Kb5b4 Qd5d4+ Kb4a3 g6g7 a7a5 g7g8Q a5a4 Qg8g3+ Ka3a2
Qd4xa4+ Ka2b2 Qg3a3+ Kb2b1) +25.44/24 3} Qxf6+ {(Qh4xf6+ Ke5xf6 Kh8g8 d4d5
Kg8f8 d5d6 Kf8e8 Kf6e6 Ke8d8 g4g5 Kd8c8 d6d7+ Kc8c7 g5g6 Kc7b6 d7d8Q+ Kb6c5
g6g7 Kc5b4 g7g8Q Kb4c3 Qg8g7+ Kc3c2 Qg7xa7 Kc2c3 Qa7c5+ Kc3b3 Qd8d3+ Kb3a4
Qc5a3+) -M15/23 2} 55. Kxf6 {(Ke5xf6 Kh8g8 g4g5 a7a5 d4d5 Kg8f8 g5g6 Kf8e8
Kf6e6 Ke8d8 d5d6 Kd8c8 d6d7+ Kc8c7 g6g7 Kc7b6 d7d8Q+ Kb6c5 g7g8Q Kc5c4
Qd8d5+ Kc4c3 Qg8g3+ Kc3c2 Qg3b3+ Kc2c1 Qd5g5+) +M14/24 2} Kg8 {(Kh8g8 d4d5
Kg8f8 d5d6 Kf8e8 Kf6e6 Ke8d8 g4g5 a7a5 g5g6 Kd8c8 d6d7+ Kc8c7 g6g7 Kc7b6
d7d8Q+ Kb6b5 g7g8Q Kb5b4 Qg8g4+ Kb4a3 Qd8d3+ Ka3a2 Qg4a4+ Ka2b2 Qa4a3+)
-M13/25 2} 56. g5 {(g4g5 a7a5 d4d5 Kg8f8 g5g6 Kf8e8 Kf6e6 Ke8d8 d5d6 Kd8c8
d6d7+ Kc8c7 g6g7 Kc7b6 d7d8Q+ Kb6c5 g7g8Q Kc5c4 Qd8d5+ Kc4c3 Qg8g3+ Kc3c2
Qg3b3+ Kc2c1 Qd5g5+) +M12/24 2 1-0 User Adjudication} 1-0
[/pgn]
I'm not sure if restricting opponent's mobility fits to Kasparov's style, but with his opening book the effect is nice.
As for pawn levers etc. I'm going to work on it soon. I've made a half-hearted attempt some time ago and failed. Perhaps reading Kmoch's book will help.
Pawel Koziol
http://www.pkoziol.cal24.pl/rodent/rodent.htm
http://www.pkoziol.cal24.pl/rodent/rodent.htm