Home * Engines * 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 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 [1] [2] .
NoraGrace Logo [3] [4]


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 dwords. 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


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 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

External Links

Chess Engine



  1. ^ New open source engine in C# - NoraGrace by Eric Oldre, CCC, June 20, 2014
  2. ^ Perinatal mortality from Wikipedia
  3. ^ Logo by Graham Banks from a picture of Nora Grace Oldre's footprints
  4. ^ Re: Some others chess engines written in C# by Eric Oldre, CCC, June 29, 2014
  5. ^ public static IEnumerable<Position> ToPositions(this Bitboard bitboard) in Bitboard.cs

What links here?

Up one Level