Difference between revisions of "Bitboard-Chess"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
(7 intermediate revisions 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]], | ||
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]], 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= | ||
Line 12: | Line 11: | ||
==[[Board Representation]]== | ==[[Board Representation]]== | ||
* [[Bitboards]] | * [[Bitboards]] | ||
+ | * [[8x8 Board]] | ||
==[[Search]]== | ==[[Search]]== | ||
* [[Iterative Deepening]] | * [[Iterative Deepening]] | ||
Line 17: | Line 17: | ||
* [[Transposition Table]] | * [[Transposition Table]] | ||
* [[Move Ordering]] | * [[Move Ordering]] | ||
+ | ** [[Hash Move]] | ||
** [[MVV-LVA]] | ** [[MVV-LVA]] | ||
** [[History Heuristic]] | ** [[History Heuristic]] | ||
Line 34: | Line 35: | ||
* [[JavaScript-Chess]] | * [[JavaScript-Chess]] | ||
− | = | + | =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= | ||
Line 51: | Line 52: | ||
[[Category:X64]] | [[Category:X64]] | ||
[[Category:Windows]] | [[Category:Windows]] | ||
+ | [[Category:Chess Suffix]] |
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].
Contents
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