Analyze This (Version 4.0)

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
AdminX
Posts: 6396
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

Analyze This (Version 4.0)

Post by AdminX »

Some nice improvements were add to Analyze This 4.0 (Android) :D

Full Automatic Engine Analysis (with verbose commentary!) - BETA
Stockfish 6
Engine Threads/Cores
Automatic Opening recognition
Undo option in strategic places
Share board image with different arrow/highlight colors
Option to hide engine arrow
More space for Notation
Touch and hold the board for Quick annotation view
Bug fixes and other enhancements

http://www.mychessapps.com/2015/06/what ... is-40.html
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
Ferdy
Posts: 4855
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Analyze This (Version 4.0)

Post by Ferdy »

AdminX wrote:Some nice improvements were add to Analyze This 4.0 (Android) :D

Full Automatic Engine Analysis (with verbose commentary!) - BETA
Stockfish 6
Engine Threads/Cores
Automatic Opening recognition
Undo option in strategic places
Share board image with different arrow/highlight colors
Option to hide engine arrow
More space for Notation
Touch and hold the board for Quick annotation view
Bug fixes and other enhancements

http://www.mychessapps.com/2015/06/what ... is-40.html
Thanks Ted.
Full Automatic Engine Analysis (with verbose commentary!) - BETA
Not much going on yet but should be a good start.
Sample at 10/pos

[pgn]
[Event "Norway Chess 2015"]
[Site "?"]
[Date "2015.06.22"]
[Round "6"]
[White "Anand, Viswanathan"]
[Black "Vachier-Lagrave, Maxime"]
[Result "1-0"]
[WhiteElo "2804"]
[BlackElo "2723"]
[ECO "B90"]
[FCGameId "1685573002"]

1. e4 c5 2. Nf3 d6 3. d4 cxd4 4. Nxd4 Nf6 5. Nc3 a6 6. h3 e6 7. g4 h6 8. Bg2 Nc6
9. Be3 Be7 10. f4 Nd7 11. O-O Nxd4 12. Qxd4 O-O 13. Qd2 Rb8 14. Ne2 b5 15. Rad1
Qc7 16. f5 Nf6 17. Ng3 Bb7 18. Kh1 Rbd8 19. Bxh6 gxh6 20. Qxh6 d5 21. g5 Qxg3
22. Rd3 Nh5 $4
{(0.89 -> 6.71)
Makes it easy for the opponent. Nxe4 0.89 is suggested} (22...
Nxe4 ) 23. g6 fxg6 24. fxg6 Rxf1+ 25. Bxf1 Nf6 26. Rxg3 dxe4 27. Be2 e3+ 28. Kg1
Bc5 {(7.13 -> 9.65)} 29. Kf1
{(9.65 -> 7.44)
Better is g7 9.65 (Stockfish 6, depth=15)} (29. g7 ) 1-0[/pgn]

Couple of suggestions for Asim.
1. Make an option to exclude from analysis the first few moves in a game.
2. When the score of the analysis of the player move is more than +10 pawns or less than -10 pawns, don't bother analyzing such position by the computer, to save computer analysis time of already winning or losing positions. Perhaps make this as an option.
3. Identify interesting positions by examining the iteration move of the engine analysis, whenever the engine changes its best move, count it. Say

Code: Select all

info depth 3 score cp 10 pv e2e4 e7e5 g1f3
info depth 4 score cp 11 pv g1f3 g8f6 b1c3 b8c6
iter_move_change++
e2e4 and g1f3 is different

Code: Select all

info depth 5 score cp 9 pv d2d4 d7d5 c2c4 c7c6 g1f3
iter_move_change++
g1f3 and d2d4 is different
...

Code: Select all

if (iter_move_change >= 3)
pos_is_interesting
If such position is interesting, extend analysis time say 3x the nominal time entered by the user. This would give the engine more time to give correct assessment of the position.
And if the the engine move is the same as that of the player move in the game, put a good move symbol after the game move say 19. Bxh6!. When you do a multipv 2 analysis, if the score of pv1 is bigger than the score of pv2 by some score threshold (say 2 pawns) use !! instead of !. That is the reward of the player finding the best move in a complicated pos.
4. If the user enters a long analysis time say 1 minute/pos, find a way to reduce analysis time especially if the move is what we call easy move. For captures this is easier to detect, if there are no iter move changes and the engine has already spent half of allocated time say 60s/2 = 30s, then stop the analysis.
5. If you are at a point to write a line or a move as suggested by the analyzing engine give position assessment symbol after the player move in the game. Say =, +/=, +/- or +- and others. This would give the user an idea of who is better at this point in the game.
6. If the computer analysis score is better than the score of the player by some margin say 15cp, write the pv of the line suggested by the engine into the game as variation.
7. You can send eval command to sf6 and it will give static eval of the position, there are space, kingsafety, mobility and others. If white is so much better in mobility by some margin, you may write, "white has a better piece mobility here!!" for example. This is something that I plan to implement.

Sample from my tool at 2s/pos with limited pv length of 7 plies.

[pgn]
[Event "3rd Norway Chess 2015"]
[Site "Stavanger NOR"]
[Date "2015.06.22"]
[Round "6.2"]
[White "Anand, Viswanathan"]
[Black "Vachier-Lagrave, Maxime"]
[Result "1-0"]
[Annotator "Stockfish 6 (2.0s/pos)"]
[ECO "B90"]

1.e4 c5 2.Nf3 d6 3.d4 cxd4 4.Nxd4 Nf6 5.Nc3 a6 6.h3 e6 7.g4 h6 8.Bg2 Nc6 9.Be3 Be7 10.f4 Nd7 11.O-O Nxd4 12.Qxd4 O-O 13.Qd2 $10 { -0.16/16 } ( { Better is } 13.a3 b5 14.a4 bxa4 15.Qxa4 Rb8 16.Qa2 $10 { +0.08/15 } ) ( { Also playable is } 13.Rad1 b5 14.a4 bxa4 15.Qxa4 Rb8 16.Qa3 $10 { +0.06/15 } ) ( { Black is threatening } 13.-- b6 14.Rad1 Bb7 15.Qd2 b5 16.a3 Qc7 { -0.11 } ) 13...Rb8 $10 { +0.19/15 } ( { Better is } 13...b5 14.e5 d5 15.a3 Bb7 16.Bf3 Rc8 $10 { -0.16/16 } ) ( { White is
threatening } 13...-- 14.Rad1 Rb8 15.a4 b6 16.h4 b5 17.axb5 { 0.23 } ) 14.Ne2 $10 { -0.08/16 } ( { Better is } 14.a4 b6 15.Rfd1 Bb7 16.h4 Rc8 17.g5 $10 { +0.12/17 } ) ( { Also playable is } 14.h4 b5 15.g5 hxg5 16.hxg5 b4 17.Ne2 $10 { +0.02/17 } ) ( { Black is threatening } 14.-- b5 15.Rad1 Qc7 16.Ne2 Bb7 17.e5 d5 { -0.25 } ) 14...b5 15.Rad1 Qc7 16.f5 Nf6 $14 { +0.32/15 } ( { Better is } 16...Ne5 17.fxe6 fxe6 18.Rxf8+ Kxf8 19.b3 Bd7 $10 { -0.16/16 } ) ( { Also playable is } 16...e5 17.Ng3 Bb7 18.c3 Rfc8 19.Nh5 Qc4 $10 { -0.14/16 } ) ( { White is threatening } 16...-- 17.fxe6 fxe6 18.Rxf8+ Bxf8 19.Nf4 Ne5 20.b3 { 0.07 } ) 17.Ng3 $10 { -0.13/14 } ( { Better is } 17.fxe6 Bxe6 18.Nd4 Rbc8 19.c3 Nd7 20.Nf5 $14 { +0.32/15 } ) ( { Also playable is } 17.a3 Bb7 18.fxe6 fxe6 19.Nd4 Nxe4 20.Rxf8+ $10 { +0.05/15 } ) ( { Black is threatening } 17.-- Bb7 18.fxe6 fxe6 19.Nd4 Nxe4 20.Rxf8+ Bxf8 { -0.36 } ) 17...Bb7 $1 18.Kh1 Rbd8 19.Bxh6 $1 gxh6 20.Qxh6 d5 21.g5 Qxg3 22.Rd3 $1 Nh5 $4 $18 { +5.84/16 } ( { Better is } 22...Qe5 23.gxf6 Bxf6 24.Bf3 exf5 25.Rg1+ Bg7 $16 { +1.54/19 } ) ( { Also playable is } 22...Nxe4 23.f6 Bxf6 24.Bxe4 dxe4 25.Rxg3 e3+ $16 { +2.15/19 } ) ( { White is threatening } 22...-- 23.gxf6 Qg4 24.hxg4 Bxf6 25.Qxf6 Rfe8 26.Rh3 { 299.91 } ) 23.g6 $8 fxg6 $8 24.fxg6 $8 Rxf1+ $8 25.Bxf1 Nf6 $8 26.Rxg3 $8 dxe4 27.Be2 e3+ 28.Kg1 $8 Bc5 $2 $18 { +9.32/18 } ( { Better is } 28...Be4 29.g7 Bh7 30.Kf1 Rd5 31.Bd3 Bxd3+ $18 { +6.68/16 } ) ( { White is threatening } 28...-- 29.g7 Bf3 30.Rxf3 Kf7 31.Bd3 e5 32.Bg6+ { 14.92 } ) 29.Kf1 $2 $18 { +7.67/17 } ( { Better is } 29.g7 Rd1+ 30.Bxd1 e2+ 31.Kh2 exd1=Q 32.Qh8+ $18 { +9.32/18 } ) ( { Black is threatening } 29.-- Rd1+ 30.Bxd1 e2+ 31.Kh2 exd1=Q 32.Qh7+ Nxh7 { -299.85 } ) 1-0
[/pgn]
User avatar
asimpereira
Posts: 38
Joined: Sun Mar 25, 2012 9:06 am

Re: Analyze This (Version 4.0)

Post by asimpereira »

Thanks Ferdinand, these are great suggestions!

Hoping to improve the analysis feature in future versions of the App.

Regards,
Asim
--
Regards,
Asim

For the love of the game http://mychessapps.com