Changes

Jump to: navigation, search

FrankWalter

8 bytes removed, 20:14, 28 September 2019
no edit summary
These are all members of a board class along with the usual stuff specifying a [[Chess Position|chess position]], such as [[Side to move|side to move]], [[Castling Rights|castling rights]], [[En passant|en passant]] target, [[Halfmove Clock|halfmove clock]], and an array of [[Zobrist Hashing|Zobrist keys]] to detect [[Repetitions|repetitions]] along the actual game record and variation.
Despite [[Sliding Piece Attacks|sliding piece attacks]] are determined by a memory friendly approach of [[Kindergarten Bitboards|Kindergarten bitboards]] for [[Files|files]] and [[Magic Bitboards|Magic bitboards]] for [[Ranks|ranks]] and [[Bishop|bishops]],
FrankWalter keeps [[Attack and Defend Maps|attack tables]] in [[Attack and Defend Maps#Classical Approach|classical]] [[Chess (Program)|Chess 4.5]] style <ref>[[David Slate]], [[Larry Atkin]] ('''1977'''). ''CHESS 4.5 - The Northwestern University Chess Program.'' [[Chess Skill in Man and Machine]], reprinted ('''1988''') in [[Computer Chess Compendium]]</ref>, that is two bitboard arrays (ATKFR and ATKTO) indexed by square,
While along with keeping bitboards for [[Pin|pinned pieces]], this seems an reasonable approach to implement [[Move Generation#Legal|legal move generation]], the culprit is the [[Incremental Updates|incremental update]],
in particular using a [[Copy-Make#Stack|copy-make stack]] to copy the 1K attack table not only during [[Make Move|make]] but also back during [[Unmake Move|unmake]] <ref>[https://github.com/ljgw/frankwalter/blob/master/src/main/java/com/winkelhagen/chess/frankwalter/board/Board.java frankwalter/Board.java at master · ljgw/frankwalter · GitHub]</ref>.

Navigation menu