Difference between revisions of "Bitboard-Chess"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
(One intermediate revision by the same user not shown) | |||
Line 2: | Line 2: | ||
'''Bitboard-Chess''',<br/> | '''Bitboard-Chess''',<br/> | ||
− | 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]], available on [https://en.wikipedia.org/wiki/GitHub GitHub] <ref>[https://github.com/billjordanchess/Bitboard-Chess GitHub - billjordanchess/Bitboard-Chess: Simple C++ chess playing program which uses bitboards]</ref> - an [https://en.wikipedia.org/wiki/Ebook ebook] explaining the program is available from [https://en.wikipedia.org/wiki/Amazon_(company) Amazon] <ref>[[Bill Jordan]] ('''2020'''). ''[https://amzn.eu/7p0J2S1 How to Write a Bitboard Chess Engine]''. [https://www.amazon.com/How-Write-Bitboard-Chess-Engine-ebook/dp/B0842GRJ6L/ amazon]</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]]. |
− | 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]] | ||
[[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 | ||
Line 37: | Line 36: | ||
=Publication= | =Publication= | ||
− | * [[Bill Jordan]] ('''2020'''). ''How to Write a Bitboard Chess Engine''. [https://www.amazon.com/How-Write-Bitboard-Chess-Engine-ebook/dp/B0842GRJ6L/ amazon] | + | * [[Bill Jordan]] ('''2020'''). ''[https://amzn.eu/7p0J2S1 How to Write a Bitboard Chess Engine]''. [https://www.amazon.com/How-Write-Bitboard-Chess-Engine-ebook/dp/B0842GRJ6L/ amazon] |
=External Links= | =External Links= |
Latest revision as of 10:46, 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, available on GitHub [1] - an ebook explaining the program is available from Amazon [2]. 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.
Bitboard serialization is done via Matt Taylor's folded BitScan [3],
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 [4].
Features
Board Representation
Search
- Iterative Deepening
- Alpha-Beta
- Transposition Table
- Move Ordering
- Extensions
- Reductions
- Quiescence Search
Evaluation
See also
Publication
External Links
References
- ↑ GitHub - billjordanchess/Bitboard-Chess: Simple C++ chess playing program which uses bitboards
- ↑ Bill Jordan (2020). How to Write a Bitboard Chess Engine. amazon
- ↑ 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