New versions of Zevra (v1.7):
https://github.com/sovaz1997/Zevra/rele ... /v1.7_r560
+100 ELO points
Zevra 1.6.2 r536
Moderators: hgm, Rebel, chrisw
-
- Posts: 261
- Joined: Sun Nov 13, 2016 10:37 am
-
- Posts: 2581
- Joined: Mon Feb 08, 2016 12:43 am
- Full name: Brendan J Norman
Re: Tevra 1.6.2 r536
Thanks Oleg, this is a cool engine, probably around 2100-2150 Elo (FIDE Elo not CCRL).
I played a blitz game against it and was positionally crushing it, but lost on time in a complicated pawn up endgame.
The final position was better for me, but getting more complicated due to an inaccuracy on my part.
I feel like I'm stronger than Zevra, but still need to work in order to beat it.
A nice sparring partner for humans - good work my friend.
Brendan
-
- Posts: 261
- Joined: Sun Nov 13, 2016 10:37 am
Re: Tevra 1.6.2 r536
Thank you for testing!
-
- Posts: 2251
- Joined: Wed Mar 08, 2006 8:47 pm
- Location: Hattingen, Germany
Re: Tevra 1.6.2 r536
Hi Oleg,
your code looks like from an obfuscation contest or compiler optimization test - a violation of using bitboards
One sample of many:
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):
Best regards,
Gerd
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
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
Gerd
-
- Posts: 261
- Joined: Sun Nov 13, 2016 10:37 am
Re: Tevra 1.6.2 r536
Release Zevra v1.8 r583:
https://github.com/sovaz1997/Zevra/rele ... /v1.8_r583
Just now I saw your message. I'll try to fix it in the next version. Thank you.
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
-
- Posts: 2581
- Joined: Mon Feb 08, 2016 12:43 am
- Full name: Brendan J Norman
Re: Tevra 1.6.2 r536
Very quick to release a new version Oleg...sovaz1997 wrote:Release Zevra v1.8 r583:
https://github.com/sovaz1997/Zevra/rele ... /v1.8_r583
Just now I saw your message. I'll try to fix it in the next version. Thank you.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
What are the changes?
-
- Posts: 261
- Joined: Sun Nov 13, 2016 10:37 am
Re: Tevra 1.6.2 r536
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)
-
- Posts: 1142
- Joined: Thu Dec 28, 2017 4:06 pm
- Location: Argentina
Re: Tevra 1.6.2 r536
That was a huge increase in strenght! Very nice.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)
Can we expect a 1.8.1 version soon (as you usually do) or you're confident this is stable enough and bug-free?
-
- Posts: 261
- Joined: Sun Nov 13, 2016 10:37 am
Re: Tevra 1.6.2 r536
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!CMCanavessi wrote:That was a huge increase in strenght! Very nice.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)
Can we expect a 1.8.1 version soon (as you usually do) or you're confident this is stable enough and bug-free?