Chess on Android.

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

Moderator: Ras

Gurcan Uckardes
Posts: 196
Joined: Wed Oct 29, 2014 12:42 am

Re: Chess on Android.

Post by Gurcan Uckardes »

abik wrote: Gurcan, you probably want to retest some XBoard engines under time control after that..
Yes, i'm absolutely ready n' willing regardless of the time needed for a complete replacement.
Just make sure they can respect 900+2 which is my humble standard :-)

By the way what's the explanation for Crafty and Exchess which do not cause problems with Fischer clocks?
My blog for Android users: http://chesstroid.blogspot.com
User avatar
abik
Posts: 823
Joined: Fri Dec 01, 2006 10:46 pm
Location: Mountain View, CA, USA
Full name: Aart Bik

Re: Chess on Android.

Post by abik »

Gurcan Uckardes wrote:By the way what's the explanation for Crafty and Exchess which do not cause problems with Fischer clocks?
Well, probably the only engines that follow the standard correctly (and don't rely on the de-facto addition).
User avatar
abik
Posts: 823
Joined: Fri Dec 01, 2006 10:46 pm
Location: Mountain View, CA, USA
Full name: Aart Bik

Re: Chess on Android.

Post by abik »

I conducted a few quick test matches between Chess for Android and DanaSah using 1 min for the full game (which engines should easily win), but noticed that DanaSah often runs out of time, even when I set GUI time lag (I even introduced a higher value of 250ms for this test).

I hope this can be fixed with some fine tuning in the engine and does not result in the next GUI feature request :-) :-)

[pgn]
[Event "Chess for Android Tournament"]
[Site "United States"]
[Date "1970.10.30"]
[Round "1"]
[White "Chess for Android"]
[Black "danasah6_ls.arm7"]
[Result "1-0"]
[PlyCount "123"]
[TimeControl "60"]
[Device "Nexus 5"]

1. d4 {opening reply 0.001} d5 {opening reply 0.0}
2. c4 {opening reply 0.0} e6 {opening reply 0.0}
3. Nc3 {opening reply 0.0} Nf6 {opening reply 0.001}
4. Bg5 {opening reply 0.0} Be7 {opening reply 0.0}
5. cxd5 {[7/12]19 2.82} exd5 {[7]43 1.439}
6. Bf4 {[6/10]-15 2.684} O-O {[7]76 0.829}
7. Bd2 {[6/9]-22 2.577} Nc6 {[7]170 0.838}
8. Nf3 {[6/11]-24 2.454} Bf5 {[7]166 0.85}
9. Rc1 {[5/9]-16 2.331} Bb4 {[6]163 2.079}
10. h4 {[6/11]-121 2.242} Qd7 {[7]152 2.38}
11. Ne5 {[6/10]-17 2.121} Nxe5 {[7]180 0.91}
12. dxe5 {[7/11]-10 2.094} Bxc3 {[8]167 0.941}
13. bxc3 {[6/9]-22 1.942} Ng4 {[8]173 2.414}
14. Bf4 {[6/11]-68 1.874} Qe6 {[8]169 1.077}
15. Qd4 {[5/10]-2 1.801} Rfe8 {[7]175 2.43}
16. Rd1 {[5/9]-13 1.73} Nxe5 {[8]209 1.111}
17. h5 {[5/9]-7 1.665} c5 {[6]212 1.619}
18. Qxd5 {[5/11]-15 1.561} Bc2 {[8]251 1.589}
19. Qxe6 {[6/11]-119 1.647} Rxe6 {[9]175 2.236}
20. Ra1 {[6/10]-112 1.428} Nd3+ {[9]229 1.095}
21. Kd2 {[1/3]-15 0.002} Nxf2 {[9]217 0.852}
22. Rh4 {[5/9]-114 1.37} Ba4 {[7]324 0.872}
23. Ke1 {[6/11]-114 1.339} Nd3+ {[9]309 1.413}
24. Kd2 {[1/3]-110 0.002} Nxf4 {[9]308 0.844}
25. Rxf4 {[6/13]-115 1.317} Rd8+ {[8]293 1.351}
26. Ke1 {[6/12]-114 1.225} Bc2 {[9]272 3.405}
27. Rf2 {[5/10]-109 1.194} b6 {[6]324 1.69}
28. a3 {[5/10]-109 1.142} Re3 {[6]324 1.876}
29. Rf3 {[7/10]-112 1.081} Re5 {[7]317 0.979}
30. g4 {[5/10]-109 1.059} Re4 {[7]287 1.141}
31. g5 {[5/10]-99 0.998} Rg4 {[7]336 0.854}
32. Rc1 {[6/10]-197 0.966} Be4 {[8]359 1.211}
33. Re3 {[6/12]-217 0.935} Re8 {[7]301 0.94}
34. Rd1 {[6/10]-200 0.894} Kf8 {[8]317 0.833}
35. Rh3 {[6/9]-208 0.868} Rxg5 {[8]311 1.582}
36. Rd2 {[6/9]-216 0.834} Bf5 {[7]373 1.097}
37. Rh2 {[6/9]-287 0.835} Rg3 {[8]444 1.089}
38. h6 {[5/9]-287 0.808} Rxc3 {[8]467 1.317}
39. Rf2 {[6/9]-399 0.736} g6 {[8]532 1.4}
40. a4 {[6/10]-360 0.73} Rc4 {[8]545 1.448}
41. Ra2 {[5/10]-284 0.704} Rh4 {[8]560 1.416}
42. a5 {[5/9]-369 0.68} b5 {[7]584 0.923}
43. Rb2 {[5/10]-283 0.65} b4 {[8]613 0.811}
44. a6 {[6/9]-393 0.637} Rxh6 {[7]663 0.828}
45. Rd2 {[5/9]-392 0.608} Rh4 {[7]708 0.842}
46. Bg2 {[5/9]-383 0.613} c4 {[7]735 0.984}
47. Rd5 {[4/8]-406 0.581} c3 {[6]772 1.801}
48. Rc5 {[4/8]-426 0.643} b3 {[8]821 0.948}
49. e4 {[4/7]-550 0.587} b2 {[7]1171 1.343}
50. Rb5 {[5/11]-559 0.585} Bxe4 {[7]1344 1.436}
51. Bxe4 {[6/11]-909 0.554} Rh1+ {[6]1424 0.898}
52. Ke2 {[5/12]-591 0.563} c2 {[6]1452 0.851}
53. Rb7 {[5/11]-771 0.487} c1=Q {[6]1509 0.894}
54. Rfxf7+ {[5/11]-912 0.472} Kg8 {[6]1509 0.076}
55. Rg7+ {[5/9]-921 0.501} Kh8 {[5]1672 0.842}
56. Kf3 {[4/7]-1672 0.548} Qf1+ {[5]1942 1.099}
57. Ke3 {[5/10]-1480 0.431} Qe1+ {[6]2446 2.111}
58. Kd4 {[4/10]-1972 0.443} Qxe4+ {[4]2055 0.827}
59. Kc3 {[5/10]-1589 0.561} Qe5+ {[5]32758 2.357}
60. Kd2 {[4/10]-1990 0.503} Rd1+ {[5]32760 2.343}
61. Kc2 {black mates in #3 0.172} Rc1+ {[7]32762 1.216}
62. Kb3 {black mates in #2 0.008} 1-0
{black resigned:Time Control 0:00:12 vs. flag ([13]32764)}
[/pgn]
User avatar
pedrox
Posts: 1056
Joined: Fri Mar 10, 2006 6:07 am
Location: Basque Country (Spain)

Re: Chess on Android.

Post by pedrox »

I have not been able to reproduce this problem.

danasah6_ls.arm7 It is a special version of the engine to play with limited strength.

To reduce the force what I do is reduce the number of nodes per second that engine play, I send the engine to sleep and this makes the engine will cost more out of the search. For this reason in small time controls , uncontrolled movements without increasing the engine could have problems.

But still I was not able to reproduce the problem on my tablet.

I have played 30 games against CfA 1 minute, I tried the uci version (I think you 've tried the xboard version although it should be the same)

if you do not modify the default engine options engine will play with 2000 ELO points and make 20 kNs. With 1500 ELO 2 KNs and 1400 ELO 1 KNs.

10 games 1 minute DanaSah 6 LS (ELO 2000) - CfA --> 9,5 - 0,5
10 games 1 minute DanaSah 6 LS (ELO 1500) - CfA --> 7 - 3
10 games 1 minute DanaSah 6 LS (ELO 1400) - CfA --> 5,5 - 4,5


The only game I saw lose was one for CfA with more than 100 movements.

[pgn]
[Event "Chess for Android Tournament"]
[Site "España"]
[Date "2016.04.20"]
[Round "1"]
[White "Chess for Android"]
[Black "DanaSah 6.0 LimitStrength"]
[Result "0-1"]
[PlyCount "214"]
[TimeControl "60"]
[Device "SPC Glow9.7 1.1"]

1. d4 {apertura 0.0} d5 {apertura 0.001}
2. c4 {apertura 0.0} e6 {apertura 0.001}
3. Nc3 {apertura 0.0} c6 {apertura 0.003}
4. e4 {apertura 0.0} dxe4 {apertura 0.001}
5. Nxe4 {[5/10]15 2.759} Bb4+ {[4]-77/c1d2 2.49}
6. Nc3 {[5/10]6 2.843} Nf6 {[4]-25/f1d3 1.49}
7. Ne2 {[5/10]3 2.541} a6 {[3]28/a2a3 0.861}
8. Bd2 {[5/10]12 2.399} O-O {[3]31/c3e4 0.803}
9. c5 {[5/9]10 2.283} Nbd7 {[3]44/a2a3 1.004}
10. a3 {[5/8]12 2.125} Ba5 {[4]8/e2g3 1.37}
11. b4 {[5/8]11 2.052} Bc7 {[4]13/e2f4 1.33}
12. a4 {[4/7]-2 1.917} a5 {[3]78/a1b1 1.138}
13. b5 {[5/8]28 1.816} cxb5 {[4]12/a4b5 1.833}
14. axb5 {[5/9]33 1.787} Qe7 {[4]3/e2c1 2.38}
15. b6 {[5/9]105 1.761} Bb8 {[4]-71/g2g3 0.969}
16. Qb1 {[4/7]22 1.687} e5 {[3]46/c5c6 0.812}
17. c6 {[4/7]-33 1.764} exd4 {[3]210/c6d7 0.666}
18. cxd7 {[4/9]-81 1.456} dxc3 {[5]194/d2c3 1.03}
19. Bxc3 {[4/8]-81 1.421} Bxd7 {[4]194/a1a5 1.569}
20. Rxa5 {[5/8]15 1.237} Rxa5 {[4]213/c3a5 0.604}
21. Bxa5 {[4/8]14 1.295} Re8 {[3]235/b1d1 1.198}
22. Bb4 {[4/9]17 1.126} Qd8 {[4]213/b4d2 1.441}
23. Bd2 {[4/7]14 1.192} Ne4 {[3]226/d2e3 1.405}
24. Qb4 {[4/8]-106 1.178} Re5 {[3]234/d2c1 0.93}
25. h4 {[4/7]-104 1.009} Bd6 {[3]254/b4d4 0.49}
26. Qd4 {[4/7]17 0.921} Nxd2 {[4]250/e1d2 0.948}
27. Qxd6 {[4/8]17 1.058} Nc4 {[3]221/d6d4 0.453}
28. Qc7 {[4/7]-7 0.787} Qc8 {[4]133/c7c8 0.871}
29. Qxc8+ {[5/8]-96 0.777} Bxc8 {[5]113/f2f4 0.656}
30. h5 {[5/9]-99 0.756} Bg4 {[4]90/h1h4 1.124}
31. h6 {[5/9]-84 0.703} g5 {[3]120/f2f3 0.515}
32. f3 {[5/9]-76 0.626} Bd7 {[4]57/f3f4 0.443}
33. g3 {[5/9]-78 0.604} f6 {[4]109/e1f2 0.937}
34. f4 {[5/8]52 0.573} gxf4 {[4]79/g3f4 0.763}
35. gxf4 {[5/10]31 0.67} Rc5 {[3]61/h1g1 0.468}
36. Rg1+ {[5/9]31 0.531} Kh8 {[4]-25/e2d4 0.697}
37. Rg7 {[5/8]30 0.526} Nxb6 {[4]-5/f1g2 0.45}
38. Rf7 {[4/8]25 0.462} Kg8 {[4]69/f7g7 0.607}
39. Rg7+ {[5/8]30 0.472} Kh8 {[6]0/g7h7 0.4}
40. Rf7 {[5/8]0 0.432} Kg8 {[6]0 0.735}
41. Rxf6 {[4/8]22 0.389} Nd5 {[4]-4/f6d6 0.559}
42. Rd6 {[5/8]40 0.394} Be8 {[3]40/f1h3 0.874}
43. Rd8 {[4/7]30 0.377} Nf6 {[3]7/e2d4 0.429}
44. Bg2 {[4/7]11 0.379} Kf7 {[3]-21/g2b7 0.38}
45. Bxb7 {[3/7]131 0.308} Ke7 {[3]-91/d8c8 0.565}
46. Ra8 {[4/7]14 0.361} Bf7 {[3]-81/a8a7 0.713}
47. Ra7 {[3/8]142 0.317} Ke8 {[3]-118/e1d2 0.621}
48. Bf3 {[4/8]133 0.418} Ng8 {[3]-158/f3e4 0.473}
49. Ra8+ {[4/7]146 0.271} Kd7 {[4]-197/a8a6 0.678}
50. Ra7+ {[4/7]146 0.287} Ke8 {[8]0 0.317}
51. Nd4 {[4/7]14 0.313} Nxh6 {[3]-220/f3c6 0.477}
52. Kf2 {[4/8]13 0.248} Bd5 {[3]-220/f3d1 0.308}
53. Rxh7 {[3/7]118 0.237} Bxf3 {[4]-99/h7h6 0.661}
54. Rh8+ {[3/7]118 0.209} Kd7 {[3]-29/f2f3 0.636}
55. Rh7+ {[4/7]116 0.308} Ke8 {[6]0/d4f3 0.466}
56. Kxf3 {[3/7]115 0.219} Nf7 {[3]-75/f3e3 0.536}
57. Kg3 {[4/8]107 0.202} Rc3+ {[3]-75/g3g2 0.324}
58. Nf3 {[4/7]104 0.131} Rc7 {[3]-51/f4f5 0.467}
59. Ne5 {[4/8]107 0.188} Ra7 {[3]-119/e5f7 0.337}
60. Nc4 {[4/7]106 0.213} Ra2 {[3]-29/g3g4 0.368}
61. Ne5 {[4/8]107 0.162} Ra7 {[4]0 0.196}
62. f5 {[4/7]103 0.188} Ra3+ {[3]0/g3h4 0.344}
63. Kh4 {[4/10]-178 0.176} Nxe5 {[3]64/h7h8 0.294}
64. f6 {[4/8]-182 0.179} Ng6+ {[3]72/h4g5 0.595}
65. Kg5 {[5/8]-144 0.202} Rg3+ {[3]33/g5h6 0.204}
66. Kh6 {[4/8]-144 0.182} Nf4 {[3]7/h7e7 0.369}
67. Re7+ {[5/10]-159 0.199} Kf8 {[4]151/e7g7 0.331}
68. Rg7 {[5/10]-180 0.149} Rh3+ {[3]122/h6g5 0.23}
69. Kg5 {[1/3]-159 0.007} Ne6+ {[3]192/g5g4 0.401}
70. Kg4 {[4/9]-297 0.19} Rh6 {[4]220/g7d7 0.302}
71. Ra7 {[4/7]-301 0.168} Rxf6 {[3]287/a7a8 0.198}
72. Ra8+ {[6/9]-301 0.186} Kf7 {[3]277/a8a7 0.181}
73. Ra7+ {[5/10]-297 0.162} Ke8 {[3]290/a7a8 0.198}
74. Ra8+ {[4/8]-303 0.222} Kd7 {[3]286/a8a7 0.378}
75. Ra7+ {[5/10]-297 0.171} Kd6 {[3]375/a7a6 0.329}
76. Ra6+ {[4/8]-306 0.184} Kd5 {[3]333/a6a5 0.19}
77. Kg3 {[4/8]-306 0.199} Rg6+ {[3]333/g3f2 0.155}
78. Kh2 {[5/9]-306 0.188} Rh6+ {[3]333/h2g3 0.349}
79. Kg3 {[5/10]-306 0.171} Ke5 {[3]333/a6a3 0.135}
80. Ra5+ {[5/8]-306 0.203} Ke4 {[3]369/a5a4 0.22}
81. Ra7 {[4/8]-306 0.225} Rg6+ {[3]369/g3f2 0.147}
82. Kh2 {[4/8]-307 0.247} Nf4 {[3]369/a7a8 0.14}
83. Re7+ {[4/8]-316 0.215} Kd3 {[3]373/e7d7 0.223}
84. Rd7+ {[4/8]-307 0.205} Kc4 {[3]350/d7c7 0.318}
85. Kh1 {[5/8]-306 0.202} Rh6+ {[3]350/h1g1 0.131}
86. Kg1 {[1/3]-298 0.008} Ne2+ {[3]350/g1f2 0.321}
87. Kg2 {[4/7]-306 0.227} Rg6+ {[3]350/g2f3 0.169}
88. Kh2 {[4/8]-305 0.224} Kc5 {[3]350/h2h3 0.188}
89. Rc7+ {[4/8]-299 0.231} Kd4 {[3]356/c7d7 0.262}
90. Rd7+ {[4/8]-304 0.225} Kc4 {[3]337/d7c7 0.316}
91. Rh7 {[3/8]-299 0.15} Nd4 {[3]337/h2h3 0.117}
92. Ra7 {[3/6]-308 0.229} Nf3+ {[3]337/h2h3 0.163}
93. Kh3 {[5/9]-299 0.263} Ng5+ {[3]337/h3g4 0.223}
94. Kg4 {[4/5]-297 0.22} Nf7+ {[3]337/g4f5 0.31}
95. Kf5 {[4/8]-291 0.215} Nh8 {[3]337/f5f4 0.16}
96. Rh7 {[4/7]-291 0.246} Rg8 {[3]337/h7a7 0.067}
97. Rc7+ {[5/8]-291 0.174} Kd5 {[3]337/c7e7 0.086}
98. Rd7+ {[5/9]-291 0.183} Kc6 {[3]337/f5e6 0.066}
99. Rh7 {[4/8]-294 0.214} Rf8+ {[3]337/f5e5 0.103}
100. Kg5 {[5/9]-291 0.208} Nf7+ {[3]337/g5f6 0.318}
101. Kf6 {[4/8]-297 0.203} Nd6+ {[3]337/f6e6 0.131}
102. Kg6 {[4/8]-297 0.228} Rg8+ {[3]337/g6f6 0.115}
103. Rg7 {[5/7]-297 0.165} Ra8 {[3]337/g6g5 0.078}
104. Rh7 {[4/8]-297 0.171} Ra2 {[3]337/g6f6 0.167}
105. Rg7 {[5/8]-304 0.236} Rg2+ {[3]337/g6h7 0.105}
106. Kh7 {[5/9]-306 0.178} Rh2+ {[3]337/h7g6 0.141}
107. Kg6 {[5/10]-304 0.196} Kc5 {[3]337/g7e7 0.066} 0-1
{white resigned:Time Control flag vs. 0:00:03 ([5/8]-306)}
[/pgn]


Perhaps it had something to do with the protocol that is played or perhaps tablet or phone used .
User avatar
pedrox
Posts: 1056
Joined: Fri Mar 10, 2006 6:07 am
Location: Basque Country (Spain)

Re: Chess on Android.

Post by pedrox »

Gurcan Uckardes wrote:Hi Pedro.
Nevertheless, the random engine is highly interesting for me. Maybe Olivechess can have some points from now on :-)

Sure that almost get all the points against danasah random move.

I also played 10 games, 5s per move:

DanaSah6 LS XBOARD (ELO 500) - Olivechess --> 2,5 - 7,5

I'm not sure if the ELO engine calibration is perfect, below 1000 points is complicated because there are few engines with elo stable and known,
but in any case it seems to be about.
User avatar
abik
Posts: 823
Joined: Fri Dec 01, 2006 10:46 pm
Location: Mountain View, CA, USA
Full name: Aart Bik

Re: Chess on Android.

Post by abik »

Well, in a fixed time for the full game, one expects to run out of time every once in a while. But in my quick test tournament, this seemed to happen too often for DanaSah (and yes, XBoard, which is probably relevant, as UCI keeps sending the clock information). For instance, if you look at the pgn data in the game I posted, your engine takes over a second even for the last few moves when mate is certain. Surely that can be improved a bit.
User avatar
pedrox
Posts: 1056
Joined: Fri Mar 10, 2006 6:07 am
Location: Basque Country (Spain)

Re: Chess on Android.

Post by pedrox »

But for me it is not so simple, both xboard as uci version share the same search , evaluation and management of time , so it is not easy to understand because in one case the engine plays well and the other not, and less if I can not try the engine.

In a game with 1 minute without increase engine should play each move as time/40 for xboard (I understand that every move the engine receives updated time remaining) or wtime(btime)/40 for uci. But times are very different in your game and mine.

When a mate reaches the engine can reach deep 100 , it will send 100 lines indicating the mate, perhaps this can cause the engine or the GUI need a long time to process information and cause the engine can not finish the search. But if this happens in a protocol on the other should be the same.

Anyway , thanks for modifying Chess for Android.
User avatar
abik
Posts: 823
Joined: Fri Dec 01, 2006 10:46 pm
Location: Mountain View, CA, USA
Full name: Aart Bik

Re: Chess on Android.

Post by abik »

pedrox wrote:Anyway , thanks for modifying Chess for Android.
One is glad to be of service.
User avatar
hgm
Posts: 28383
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Chess on Android.

Post by hgm »

abik wrote:
hgm wrote:As to the sending of 'time' commands: the official CECP specs do not require this of a GUI, but as virtually every GUI supporting CECP does it, it has become a de-facto standard.
Thanks HG. So just to make sure I get this de-facto standard right, I need to send time/otim once right before the go command, and with the current value of these clocks? I assume that engines that don't understand level will still play too fast, since they will use the clock for the full game?
Just to be clear: you have to send time & otim (although hardly any engine would probably use otim) not just before 'go', but before any command that would set the engine thinking. So also before any move you send while not in force mode. Otherwise engines that do not update their own clock will keep thinking they have as much time as they had at the start of the game.

As for engines that do not support 'level': these are simply non-compliant, and I would not worry about them. I do recall there existed an adapted version (by Dan Corbitt?) of TSCP that did understand CECP time controls. (It used to participate in Chess War.)
User avatar
abik
Posts: 823
Joined: Fri Dec 01, 2006 10:46 pm
Location: Mountain View, CA, USA
Full name: Aart Bik

Re: Chess on Android.

Post by abik »

hgm wrote:Just to be clear: you have to send time & otim (although hardly any engine would probably use otim) not just before 'go', but before any command that would set the engine thinking. So also before any move you send while not in force mode.
Ah, thanks for that clarification. This becomes a bit more like UCI then. It makes sense, as it avoids clock drift between GUI and engine.

I will make that change.