Older Version Newer Version

GerdIsenberg GerdIsenberg Nov 23, 2014

**[[Home]] * [[Engines]] * NoraGrace**
|| [[image:NoraGrace.png width="156" height="77" link="https://github.com/ericoldre/NoraGrace-Chess/releases/tag/v1.0"]] ||~   || **NoraGrace**,
a [[WinBoard]] compliant [[Open Source Engines|open source chess engine]] by [[Eric Oldre]], written in [[C sharp|C#]] and first released in June 2014 under the [[http://en.wikipedia.org/wiki/MIT_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>[[http://en.wikipedia.org/wiki/Perinatal_mortality|Perinatal mortality from Wikipedia]]</ref> . ||
||  NoraGrace Logo <ref>Logo by [[Graham Banks]] from a picture of Nora Grace Oldre's footprints</ref> <ref>[[http://www.talkchess.com/forum/viewtopic.php?topic_view=threads&p=576266&t=52700|Re: Some others chess engines written in C#]] by  [[Eric Oldre]], [[CCC]], June 29, 2014</ref> ||~   ||^   ||
[[toc]]
=Description= 
==Board Representation== 
Like [[Sinobyl]], NoraGrace relies on [[Bitboards|bitboards]], and further has an [[8x8 Board|8x8 mailbox]]. It uses [[Magic Bitboards|magic bitboards]] to determine [[Sliding Piece Attacks|sliding piece attacks]] - factors were calculated from sparse 64-bit randoms. [[BitScan]] is implemented via 32-bit [[BitScan#DeBruijnMultiplation|De Bruijn multiplication]] to conditionally branch on low and high [[Double Word|dwords]]. [[Bitboard Serialization|Bitboard serialization]] applies the C# [[http://en.wikipedia.org/wiki/Generator_%28computer_programming%29#C.23|yield statement]] <ref>public static IEnumerable<Position> ToPositions(this Bitboard bitboard) in [[https://github.com/ericoldre/NoraGrace-Chess/blob/master/NoraGrace/NoraGrace.Engine/Bitboard.cs|Bitboard.cs]]</ref> , which is further used in various [[Move Generation|move generation]] routines. NoraGrace's [[Square Mapping Considerations|square mapping]] has [[Ranks|ranks]] from 8 to 1 mapped to 0-7 at the [[Big-endian|big-end]] over [[FIles|files]] from 'a' to 'h', square zero is a8:
|| [[image:berlef.JPG link="Bibob#BERLEF"]] ||
|| NoraGrace's BERLEF Mapping ||

==Search== 
NoraGrace applies [[Negamax|negamax]] [[Alpha-Beta|alpha-beta]] with [[Transposition Table|transposition table]] and [[Quiescence Search|quiescence search]] inside an [[Iterative Deepening|iterative deepening]] framework with [[Aspiration Windows|aspiration windows]], enhanced by [[Null Move Pruning#AdaptiveNullMovePruning|adaptive null move pruning]] with [[Null Move Pruning#ZugzwangVerification|verification search]] in the [[Endgame|endgame]], [[Extensions|extensions]] if [[Static Exchange Evaluation|SEE]] > 0 for [[Check Extensions|checks]] and [[Passed Pawn Extensions|pawns to 7th rank]], [[Futility Pruning|futility pruning]] and [[Late Move Reductions|LMR]].

==Evaluation== 
[[Evaluation]] takes [[Game Phases|game phases]] into account, using a [[Tapered Eval|tapered eval]] along with //PhasedScore// objects, interpreting the low and high 32-bit [[Double Word|double words]] of a 64-bit long as two [[SIMD and SWAR Techniques|SIMD]] integers of an [[Endgame|endgame]] and [[Opening|opening]] [[Score|score]] . Beside other features, NoraGrace considers [[Material|material]], [[Piece-Square Tables|piece-square tables]], [[King Safety|king safety]], [[Pawn Hash Table|cached]] [[Pawn Structure|pawn structure]] and [[Mobility|mobility]].

=See also= 
* [[Various Classifications#GivenName|Given Name]]
* [[Sinobyl]]

=Forum Posts= 
* [[http://www.talkchess.com/forum/viewtopic.php?t=52700|New open source engine in C# - NoraGrace]] by [[Eric Oldre]], [[CCC]], June 20, 2014
* [[http://www.talkchess.com/forum/viewtopic.php?t=54419|NoraGrace 2.0 (c# engine)]] by [[Eric Oldre]], [[CCC]], November 22, 2014

=External Links= 
==Chess Engine== 
* [[https://github.com/ericoldre/NoraGrace-Chess|Ericoldre/NoraGrace-Chess · GitHub]]
* [[https://github.com/ericoldre/NoraGrace-Chess/releases|Releases · ericoldre/NoraGrace-Chess · GitHub]]
* [[http://www.computerchess.org.uk/ccrl/4040/cgi/engine_details.cgi?print=Details&each_game=1&eng=NoraGrace%201.0%2064-bit|NoraGrace 1.0 64-bit]] in [[CCRL|CCRL 40/40]]
==Misc== 
* [[http://en.wikipedia.org/wiki/List_of_Irish-language_given_names|List of Irish-language given names - Wikipedia]]

=References= 
<references />
=What links here?= 
[[include page="NoraGrace" component="backlinks" limit="20"]]
**[[Engines|Up one Level]]**