Changes

Jump to: navigation, search

Leorik

2 bytes removed, 10:01, 26 March 2022
no edit summary
=Leorik Attacks=
Leorik is a [[Bitboards|bitboard]] engine and applies an unique approach in determining [[Sliding Piece Attacks|sliding piece attacks]] based on [[On an empty Board#LineAttacks|line-wise attacks on the otherwise empty board]] (either pre-calculated or calculated on the fly). All bits below the slider's [[Origin Square|origin square]] [[General Setwise Operations#BitbySquare|bit]] are used to separate [[On an empty Board#PositiveRays|positive]] and [[On an empty Board#NegativeRays|negative]] [[Rays|rays]] to scan the nearest blocker (if any) accordingly.
Positive rays use the line occupancy, intersected with the bits not below to [[General Setwise Operations#LS1BSeparation|fill its LS1B]] (if any) down (MaskLow => bb ^ (bb - 1)). Negative Rays use the line occupancy, intersected with the bits below to fill its [[General Setwise Operations#TheMostSignificantOneBitMS1B|MS1B]] (if any) down (MaskHigh => 0x7FFFFFFFFFFFFFFFUL >> [[BitScan#TrailingZeroCountLeadingZeroCount|trailingZeroCountleadingZeroCount]](bb|1)). The [[General Setwise Operations#ExclusiveOr|symmetric difference]] of both down fills, restricted to the line-wise attacks on the otherwise empty board results in the sliding attack bitboard from that square on one particular line <ref>[https://github.com/lithander/Leorik/blob/master/Leorik.Core/Bitboard.cs Leorik/Bitboard.cs at master · lithander/Leorik · GitHub]</ref> <ref>[https://www.talkchess.com/forum3/viewtopic.php?f=7&t=79049&start=2 Re: Devlog of Leorik] by [[Thomas Jahn]], [[CCC]], January 04, 2022</ref>.
=Selected Features=

Navigation menu