Difference between revisions of "NoraGrace"
GerdIsenberg (talk | contribs) (Created page with "'''Home * Engines * NoraGrace''' border|right|thumb| NoraGrace Logo <ref>Logo by [[Graham Banks from a picture of Nora Grace Oldre's...") |
GerdIsenberg (talk | contribs) |
||
Line 7: | Line 7: | ||
'''NoraGrace''',<br/> | '''NoraGrace''',<br/> | ||
a [[WinBoard]] compliant [[:Category:Open Source|open source chess engine]] by [[Eric Oldre]], | a [[WinBoard]] compliant [[:Category:Open Source|open source chess engine]] by [[Eric Oldre]], | ||
− | written in [[C sharp|C#]] and first released in June 2014 under the [[Massachusetts Institute of Technology#License|MIT License]]. NoraGrace is dedicated to ''Nora Grace Oldre'' who was taken from Eric and his wife unexpectedly a few days before she was due to be born <ref>[http://www.talkchess.com/forum/viewtopic.php?t=52700 New open source engine in C# - NoraGrace] by [[Eric Oldre]], [[CCC]], June 20, 2014</ref> <ref>[https://en.wikipedia.org/wiki/Perinatal_mortality Perinatal mortality from Wikipedia]</ref> . | + | written in [[C sharp|C#]] and first released in June 2014 under the [[Massachusetts Institute of Technology#License|MIT License]]. NoraGrace evolved from a C# port of [[Sinobyl]] <ref>[https://www.assembla.com/code/sinobyl/subversion/nodes/129/trunk/Sinobyl trunk/Sinobyl | SVN | Assembla]</ref>, and is dedicated to ''Nora Grace Oldre'' who was taken from Eric and his wife unexpectedly a few days before she was due to be born <ref>[http://www.talkchess.com/forum/viewtopic.php?t=52700 New open source engine in C# - NoraGrace] by [[Eric Oldre]], [[CCC]], June 20, 2014</ref> <ref>[https://en.wikipedia.org/wiki/Perinatal_mortality Perinatal mortality from Wikipedia]</ref> . |
=Description= | =Description= |
Revision as of 12:35, 7 February 2021
NoraGrace,
a WinBoard compliant open source chess engine by Eric Oldre,
written in C# and first released in June 2014 under the MIT License. NoraGrace evolved from a C# port of Sinobyl [2], and is dedicated to Nora Grace Oldre who was taken from Eric and his wife unexpectedly a few days before she was due to be born [3] [4] .
Contents
Description
Board Representation
Like Sinobyl, NoraGrace relies on bitboards, and further has an 8x8 mailbox. It uses magic bitboards to determine sliding piece attacks - factors were calculated from sparse 64-bit randoms. BitScan is implemented via 32-bit De Bruijn multiplication to conditionally branch on low and high double words. Bitboard serialization applies the C# yield statement [5], which is further used in various move generation routines. NoraGrace's square mapping has ranks from 8 to 1 mapped to 0-7 at the big-end over files from 'a' to 'h', square zero is a8:
NoraGrace's BERLEF Mapping
Search
NoraGrace applies negamax alpha-beta with transposition table and quiescence search inside an iterative deepening framework with aspiration windows, enhanced by adaptive null move pruning with verification search in the endgame, extensions if SEE > 0 for checks and pawns to 7th rank, futility pruning and LMR.
Evaluation
Evaluation takes game phases into account, using a tapered eval along with PhasedScore objects, interpreting the low and high 32-bit double words of a 64-bit long as two SIMD integers of an endgame and opening score. Beside other features, NoraGrace considers material, piece-square tables, king safety, cached pawn structure and mobility.
See also
Forum Posts
- New open source engine in C# - NoraGrace by Eric Oldre, CCC, June 20, 2014
- NoraGrace 2.0 (c# engine) by Eric Oldre, CCC, November 22, 2014
External Links
Chess Engine
- Ericoldre/NoraGrace-Chess · GitHub
- Releases · ericoldre/NoraGrace-Chess · GitHub
- NoraGrace in CCRL 40/15
Misc
References
- ↑ Logo by Graham Banks from a picture of Nora Grace Oldre's footprints, Release Release 1.0 of the NoraGrace Chess Engine · ericoldre/NoraGrace-Chess · GitHub, NoraGraceV10.zip/NoraGrace.png, Re: Some others chess engines written in C# by Eric Oldre, CCC, June 29, 2014
- ↑ trunk/Sinobyl | SVN | Assembla
- ↑ New open source engine in C# - NoraGrace by Eric Oldre, CCC, June 20, 2014
- ↑ Perinatal mortality from Wikipedia
- ↑ public static IEnumerable<Position> ToPositions(this Bitboard bitboard) in Bitboard.cs