Difference between revisions of "Bitboard-Chess"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
Line 6: | Line 6: | ||
[[Bitboard Serialization|Bitboard serialization]] is done via [[Matt Taylor|Matt Taylor's]] [[BitScan#MattTaylorsFoldingtrick|folded BitScan]] <ref>[https://github.com/billjordanchess/Bitboard-Chess/blob/master/bitboard.cpp#L362 Bitboard-Chess/bitboard.cpp at master · billjordanchess/Bitboard-Chess · GitHub]</ref>, | [[Bitboard Serialization|Bitboard serialization]] is done via [[Matt Taylor|Matt Taylor's]] [[BitScan#MattTaylorsFoldingtrick|folded BitScan]] <ref>[https://github.com/billjordanchess/Bitboard-Chess/blob/master/bitboard.cpp#L362 Bitboard-Chess/bitboard.cpp at master · billjordanchess/Bitboard-Chess · GitHub]</ref>, | ||
but [[Move Generation|move generation]] of [[Sliding Pieces|sliding pieces]] is done in [[Mailbox|mailbox]] manner | but [[Move Generation|move generation]] of [[Sliding Pieces|sliding pieces]] is done in [[Mailbox|mailbox]] manner | ||
− | iterating over [[Direction#RayDirections|ray directions]] and pre-calculated [[Target Square|target squares]] <ref>[https://github.com/billjordanchess/Bitboard-Chess/blob/master/gen.cpp#L94 Bitboard-Chess/gen.cpp at master · billjordanchess/Bitboard-Chess · GitHub]</ref>. | + | iterating over [[Direction#RayDirections|ray directions]] and pre-calculated [[Target Square|target squares]], radiating from the [[Origin Square|piece origin]] along with end of ray and blocker conditions <ref>[https://github.com/billjordanchess/Bitboard-Chess/blob/master/gen.cpp#L94 Bitboard-Chess/gen.cpp at master · billjordanchess/Bitboard-Chess · GitHub]</ref>. |
=Features= | =Features= |
Revision as of 10:40, 25 July 2021
Home * Engines * Bitboard-Chess
Bitboard-Chess,
a WinBoard compliant, didactic open source chess program by Bill Jordan, written in C++ and licensed under the GPL version 3.
Bitboard-Chess is designed to show how a chess engine might work, quite similar to Bills Bare Bones Chess aka Basic-Chess, but using bitboards [1].
Bitboard serialization is done via Matt Taylor's folded BitScan [2],
but move generation of sliding pieces is done in mailbox manner
iterating over ray directions and pre-calculated target squares, radiating from the piece origin along with end of ray and blocker conditions [3].
Contents
Features
Board Representation
Search
- Iterative Deepening
- Alpha-Beta
- Transposition Table
- Move Ordering
- Extensions
- Reductions
- Quiescence Search
Evaluation
See also
Publication
- Bill Jordan (2020). How to Write a Bitboard Chess Engine. amazon
External Links
References
- ↑ GitHub - billjordanchess/Bitboard-Chess: Simple C++ chess playing program which uses bitboards
- ↑ Bitboard-Chess/bitboard.cpp at master · billjordanchess/Bitboard-Chess · GitHub
- ↑ Bitboard-Chess/gen.cpp at master · billjordanchess/Bitboard-Chess · GitHub
- ↑ Bitboard-Chess/README.md at master · billjordanchess/Bitboard-Chess · GitHub