Older Version
Newer Version
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]]**