Difference between revisions of "Bitboard-Chess"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
Line 4: | Line 4: | ||
a [[WinBoard]] compliant, didactic [[:Category:Open Source|open source chess program]] by [[Bill Jordan]], written in [[Cpp|C++]] and licensed under the [[Free Software Foundation#GPL|GPL version 3]]. | a [[WinBoard]] compliant, didactic [[:Category:Open Source|open source chess program]] by [[Bill Jordan]], written in [[Cpp|C++]] and licensed under the [[Free Software Foundation#GPL|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|bitboards]] <ref>[https://github.com/billjordanchess/Bitboard-Chess GitHub - billjordanchess/Bitboard-Chess: Simple C++ chess playing program which uses bitboards]</ref>. | 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|bitboards]] <ref>[https://github.com/billjordanchess/Bitboard-Chess GitHub - billjordanchess/Bitboard-Chess: Simple C++ chess playing program which uses bitboards]</ref>. | ||
− | [[Bitboard Serialization|Bitboard serialization]] is done via [[Matt Taylor|Matt Taylor's]] [[BitScan#MattTaylorsFoldingtrick|folded BitScan]], | + | [[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]]. | + | 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>. |
=Features= | =Features= |
Revision as of 13:57, 24 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 [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