Discussion of anything and everything relating to chess playing software and machines.
Moderators: hgm, Harvey Williamson, bob
Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
-
Gerd Isenberg
- Posts: 2105
- Joined: Wed Mar 08, 2006 7:47 pm
- Location: Hattingen, Germany
Post
by Gerd Isenberg » Tue Jan 16, 2018 10:12 am
Hi Oleg,
your code looks like from an obfuscation contest or compiler optimization test - a violation of using bitboards
One sample of many:
Code: Select all
uint64_t possibleMoves, mask, emask;
uint8_t color;
if(currentState.whiteMove) {
color = WHITE;
mask = currentState.white_bit_mask;
emask = currentState.black_bit_mask;
} else {
color = BLACK;
mask = currentState.black_bit_mask;
emask = currentState.white_bit_mask;
}
possibleMoves = rookMagic[pos / 8][pos % 8].
getPossibleMoves( rookMagicMask[pos / 8][pos % 8]
& (currentState.white_bit_mask | currentState.black_bit_mask)
& (UINT64_MAX ^ vec1_cells[pos])) // occupancy of from square should not care
& ((currentState.figures[KING] ^ emask) ^ UINT64_MAX) // exclude king captures
& (UINT64_MAX ^ emask) // exclude captures
& (mask ^ UINT64_MAX); // exclude capturing own pieces
Better use one dimensional board arrays, no branch on currentState.whiteMove but array access, and remove redundancies ...
If encapsulating rook magics as object for each square, it may also contain not only magic factor and shift but also the rook/bishop mask (and don't call the method getPossibleMoves but getControls, getAttacks or getTargets):
Code: Select all
color = currentState.whiteMove;
omask = currentState.piece_bit_mask[color];
emask = currentState.piece_bit_mask[color^1];
occu = omask & emask;
possibleMoves = rookMagic[pos].getTargets(occu) & ~occu; // only quite moves
Best regards,
Gerd
-
sovaz1997
- Posts: 98
- Joined: Sun Nov 13, 2016 9:37 am
Post
by sovaz1997 » Wed Jan 24, 2018 11:30 am
Release Zevra v1.8 r583:
https://github.com/sovaz1997/Zevra/rele ... /v1.8_r583
Code: Select all
tc=10+0.1 Hash=16
Score of Zevra 20180123 vs Zevra v1.7.1 r563: 869 - 240 - 191 [0.742] 1300
Elo difference: 183.44 +/- 19.41
---------------------------------------------------------------------------
tc=60+0.6 Hash=16
Score of Zevra 20180123 vs Zevra v1.7.1 r563: 707 - 227 - 241 [0.704] 1175
Elo difference: 150.73 +/- 18.90
Just now I saw your message. I'll try to fix it in the next version. Thank you.
-
BrendanJNorman
- Posts: 964
- Joined: Sun Feb 07, 2016 11:43 pm
Post
by BrendanJNorman » Wed Jan 24, 2018 2:35 pm
sovaz1997 wrote:Release Zevra v1.8 r583:
https://github.com/sovaz1997/Zevra/rele ... /v1.8_r583
Code: Select all
tc=10+0.1 Hash=16
Score of Zevra 20180123 vs Zevra v1.7.1 r563: 869 - 240 - 191 [0.742] 1300
Elo difference: 183.44 +/- 19.41
---------------------------------------------------------------------------
tc=60+0.6 Hash=16
Score of Zevra 20180123 vs Zevra v1.7.1 r563: 707 - 227 - 241 [0.704] 1175
Elo difference: 150.73 +/- 18.90
Just now I saw your message. I'll try to fix it in the next version. Thank you.
Very quick to release a new version Oleg...
What are the changes?
-
sovaz1997
- Posts: 98
- Joined: Sun Nov 13, 2016 9:37 am
Post
by sovaz1997 » Wed Jan 24, 2018 3:50 pm
I added a mobility bonus and improved the security of the king (the main things that gave such a gain in the power of the game)
-
CMCanavessi
- Posts: 572
- Joined: Thu Dec 28, 2017 3:06 pm
- Location: Argentina
Post
by CMCanavessi » Wed Jan 24, 2018 4:12 pm
sovaz1997 wrote:I added a mobility bonus and improved the security of the king (the main things that gave such a gain in the power of the game)
That was a huge increase in strenght! Very nice.
Can we expect a 1.8.1 version soon (as you usually do) or you're confident this is stable enough and bug-free?
-
sovaz1997
- Posts: 98
- Joined: Sun Nov 13, 2016 9:37 am
Post
by sovaz1997 » Wed Jan 24, 2018 4:37 pm
CMCanavessi wrote:sovaz1997 wrote:I added a mobility bonus and improved the security of the king (the main things that gave such a gain in the power of the game)
That was a huge increase in strenght! Very nice.
Can we expect a 1.8.1 version soon (as you usually do) or you're confident this is stable enough and bug-free?
This version is much more stable than version 1.7. I plan to make some optimizations to the moves generator in version 1.8.1. Thank you!
-
sovaz1997
- Posts: 98
- Joined: Sun Nov 13, 2016 9:37 am
Post
by sovaz1997 » Thu Jan 25, 2018 5:06 pm
Crazy game (Zevra 1.8 vs Zevra 1.7);
tc=30’+10”
[pgn][Event "?"]
[Site "?"]
[Date "2018.01.25"]
[Round "1"]
[White "Zevra 20180125"]
[Black "Zevra v1.7.1 r563"]
[Result "1-0"]
[ECO "B00"]
[TimeControl "1800+10"]
1. e4 {book} 1... d6 {book} 2. d4 {book} 2... g6 {book} 3. Nf3 {book} 3... Bg7
{book} 4. Nc3 {book} 4... Nf6 {book} 5. h3 {book} 5... c6 {book} 6. a4 {book}
6... Qa5 {book} 7. Bd2 {book} 7... Nbd7 {book} 8. Bc4 {book} 8... O-O {book} 9.
O-O {+1.32/13 36s} 9... Qc7 {-0.60/14 31s} 10. Re1 {+0.99/14 25s} 10... e5
{-0.47/15 42s} 11. Bg5 {+1.04/14 49s} 11... Qa5 {-0.48/14 25s} 12. Qd2
{+0.64/14 46s} 12... exd4 {-0.38/14 39s} 13. Nxd4 {+0.32/14 34s} 13... Ne5
{-0.36/14 37s} 14. Bb3 {+0.82/13 34s} 14... Qc5 {-0.29/13 47s} 15. a5
{+0.84/13 48s} 15... Nc4 {-0.43/12 46s} 16. Bxc4 {+2.11/15 27s} 16... Qxc4
{-1.35/15 32s} 17. Ra4 {+2.19/15 31s} 17... Qc5 {-1.34/15 32s} 18. Nb3
{+2.13/14 26s} 18... Qe5 {-1.46/15 26s} 19. Bf4 {+2.22/14 24s} 19... Qh5
{-1.57/14 24s} 20. Qxd6 {+2.27/14 36s} 20... Re8 {-1.57/14 27s} 21. a6
{+2.39/13 25s} 21... Nd5 {-1.63/14 25s} 22. Ra5 {+2.14/15 32s} 22... Bf8
{-1.59/14 42s} 23. axb7 {+1.82/16 32s} 23... Bxb7 {-1.03/16 25s} 24. Qd7
{+1.97/16 49s} 24... Re7 {-1.30/16 33s} 25. Qxe7 {+2.85/18 35s} 25... Bxe7
{-0.72/17 29s} 26. exd5 {+3.01/17 49s} 26... Qh4 {-0.91/16 20s} 27. d6
{+2.88/17 42s} 27... Bf6 {-0.91/16 33s} 28. Bg3 {+2.91/16 27s} 28... Qb4
{-1.19/16 31s} 29. d7 {+3.98/16 33s} 29... Bd8 {-1.20/15 31s} 30. Re8+
{+4.49/15 36s} 30... Kg7 {-1.27/15 23s} 31. Ra4 {+5.71/15 46s} 31... Qb6
{-1.27/13 38s} 32. Bd6 {+5.88/14 45s} 32... g5 {-3.97/13 28s} 33. Rb4
{+6.65/13 44s} 33... c5 {-5.14/13 26s} 34. Rxb6 {+6.67/14 43s} 34... axb6
{-5.47/15 22s} 35. Na4 {+7.66/15 41s} 35... Bc6 {-5.85/16 29s} 36. Rxd8
{+7.70/17 38s} 36... Rxd8 {-6.04/18 20s} 37. Nxb6 {+7.86/19 36s} 37... Bxd7
{-5.93/18 26s} 38. Bc7 {+7.93/19 46s} 38... Re8 {-6.09/17 24s} 39. Nxd7
{+8.78/16 26s} 39... Re1+ {-6.11/17 32s} 40. Kh2 Re2 {-6.11/16 34s} 41. Be5+
{+9.06/16 40s} 41... Kg6 {-6.35/16 33s} 42. Kg3 {+9.15/17 45s} 42... Rxc2
{-6.51/16 32s} 43. Bc3 {+9.19/16 46s} 43... Re2 {-6.53/16 29s} 44. Nbxc5
{+9.83/15 28s} 44... Kh5 {-7.08/14 32s} 45. Kf3 {+10.82/15 33s} 45... Rc2
{-8.48/15 21s} 46. Nf8 {+11.33/15 24s} 46... Kh4 {-8.55/16 23s} 47. Nxh7
{+12.27/16 26s} 47... Kh5 {-8.82/16 22s} 48. Ne4 {+12.50/16 25s} 48... f5
{-9.07/16 19s} 49. Nexg5 {+12.64/16 44s} 49... Rc1 {-9.16/15 30s} 50. g3
{+13.61/16 45s} 50... Rc2 {-9.53/15 30s} 51. Ne6 {+15.19/17 39s} 51... Kg6
{-11.40/17 24s} 52. Nhg5 {+15.39/17 29s} 52... Kh6 {-11.43/16 29s} 53. h4
{+16.38/16 23s} 53... Rc1 {-12.52/16 15s} 54. Nf8 {+16.93/16 25s} 54... Rxc3+
{-21.94/18 25s} 55. bxc3 {+27.87/20 41s} 55... Kg7 {-22.12/18 17s} 56. Nfe6+
{+28.06/19 41s} 56... Kf6 {-22.12/17 28s} 57. h5 {+28.24/17 26s} 57... Ke5
{-M24/16 27s} 58. h6 {+M25/16 38s} 58... Kd6 {-M26/16 21s} 59. h7 {+M23/17 35s}
59... Kd5 {-M18/14 16s} 60. h8=Q {+M19/15 27s} 60... Kc4 {-M16/13 26s} 61. Qd4+
{+M15/12 21s} 61... Kb3 {-M16/13 26s} 62. Qb4+ {+M13/13 32s} 62... Kc2
{-M8/13 26s} 63. Nd4+ {+M11/12 32s} 63... Kd2 {-M10/13 15s} 64. c4+ {+M9/12 31s}
64... Kd3 {-M8/13 25s} 65. Nge6 {+M5/13 28s} 65... f4 {-M4/12 12s} 66. c5
{+M3/11 29s} 66... fxg3 {-M2/12 13s} 67. Nf4# {+M1/11 16s, White mates}
1-0[/pgn]
-
Graham Banks
- Posts: 30733
- Joined: Sun Feb 26, 2006 9:52 am
- Location: Auckland, NZ
Post
by Graham Banks » Thu Jan 25, 2018 5:11 pm
Hopefully Zevra will now be strong enough to play in my next Amateur Series.

My email addresses:
gbanksnz at gmail.com
gbanksnz at yahoo.co.nz