Difference between revisions of "Cassandre"
GerdIsenberg (talk | contribs) |
GerdIsenberg (talk | contribs) |
||
Line 9: | Line 9: | ||
=Description= | =Description= | ||
Cassandre is a [[Bitboards|bitboard]] engine using [[Rotated Bitboards|rotated bitboards]] with 256 [[Occupancy of any Line|occupancy states]] to determine [[Sliding Piece Attacks|sliding piece attacks]], | Cassandre is a [[Bitboards|bitboard]] engine using [[Rotated Bitboards|rotated bitboards]] with 256 [[Occupancy of any Line|occupancy states]] to determine [[Sliding Piece Attacks|sliding piece attacks]], | ||
− | [[BitScan|bitscan]] aka first- and last one by conditional 16-bit lookups, and [[Population Count|population count]] by eight byte lookups credited to [[Dann Corbit]] <ref>[http://cassandre.sourceforge.net/about.html Cassandre - Chess Engine - About]</ref>. | + | [[BitScan|bitscan]] aka first- and last one by conditional 16-bit lookups, and [[Population Count|population count]] by eight byte lookups credited to [[Dann Corbit]] <ref>[http://cassandre.sourceforge.net/about.html Cassandre - Chess Engine - About], cassandre-0.24\src\BitboardToolkit.cpp - contage de bits par table lookup (D. Corbit)</ref>. |
Cassandre greatly lacks any [[Move Ordering|move ordering]] except generating [[Captures|captures]] before [[Quiet Moves|quiet moves]]. | Cassandre greatly lacks any [[Move Ordering|move ordering]] except generating [[Captures|captures]] before [[Quiet Moves|quiet moves]]. | ||
The structure of the [[Move Generation|move generation]] [[Bitboard Serialization|serialization loops]] is an instructive counterexample of how one shouldn't write a bitboard engine. | The structure of the [[Move Generation|move generation]] [[Bitboard Serialization|serialization loops]] is an instructive counterexample of how one shouldn't write a bitboard engine. |
Latest revision as of 21:24, 30 December 2019
![](https://upload.wikimedia.org/wikipedia/commons/thumb/4/42/Cassandra1.jpeg/180px-Cassandra1.jpeg)
Cassandre,
an Chess Engine Communication Protocol and UCI compliant open source chess engine under the terms of the GNU General Public License (GPL) by Raphael Grundrich, Thomas Adolph and Jean-Francois Romang,
written in C++ and first released in March 2003. Cassandre started as a student project at Louis Pasteur University, Strasbourg [2].
Description
Cassandre is a bitboard engine using rotated bitboards with 256 occupancy states to determine sliding piece attacks, bitscan aka first- and last one by conditional 16-bit lookups, and population count by eight byte lookups credited to Dann Corbit [3]. Cassandre greatly lacks any move ordering except generating captures before quiet moves. The structure of the move generation serialization loops is an instructive counterexample of how one shouldn't write a bitboard engine.
See also
External Links
Chess Engine
Misc
- Cassandre - Wikipédia.fr (French)
- Cassandra from Wikipedia
- Cassandra (disambiguation) from Wikipedia
- Cassandra (metaphor) from Wikipedia
- Cassandra (name) from Wikipedia
References
- ↑ Evelyn De Morgan - Cassandra (1898, London). Cassandra in front of the burning city of Troy at the peak of her insanity, Wikimedia Commons
- ↑ Cassandre - Chess Engine
- ↑ Cassandre - Chess Engine - About, cassandre-0.24\src\BitboardToolkit.cpp - contage de bits par table lookup (D. Corbit)