Changes

Jump to: navigation, search

NoraGrace

4,864 bytes added, 20:45, 2 February 2021
Created page with "'''Home * Engines * NoraGrace''' border|right|thumb| NoraGrace Logo <ref>Logo by [[Graham Banks from a picture of Nora Grace Oldre's..."
'''[[Main Page|Home]] * [[Engines]] * NoraGrace'''

[[FILE:NoraGrace.png|border|right|thumb| NoraGrace Logo
<ref>Logo by [[Graham Banks]] from a picture of Nora Grace Oldre's footprints, [https://github.com/ericoldre/NoraGrace-Chess/releases/tag/v1.0 Release Release 1.0 of the NoraGrace Chess Engine · ericoldre/NoraGrace-Chess · GitHub], NoraGraceV10.zip/NoraGrace.png, [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>
]]

'''NoraGrace''',<br/>
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> .

=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|double words]].
[[Bitboard Serialization|Bitboard serialization]] applies the C# [https://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:
[[FILE:berlef.JPG|none|border|text-bottom|link=Bibob#BERLEF]]
NoraGrace's [[Bibob#BERLEF|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=
* [[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://ccrl.chessdom.com/ccrl/4040/cgi/compare_engines.cgi?family=NoraGrace&print=Rating+list&print=Results+table&print=LOS+table&print=Ponder+hit+table&print=Eval+difference+table&print=Comopp+gamenum+table&print=Overlap+table&print=Score+with+common+opponents NoraGrace] in [[CCRL|CCRL 40/15]]
==Misc==
* [https://en.wikipedia.org/wiki/List_of_Irish-language_given_names List of Irish-language given names - Wikipedia]

=References=
<references />
'''[[Engines|Up one Level]]'''
[[Category:Open Source]]
[[Category:MIT]]
[[Category:C sharp]]
[[Category:WinBoard]]
[[Category:X86]]
[[Category:X64]]
[[Category:Windows]]
[[Category:Given Name]]

Navigation menu