mirror of
https://github.com/sockspls/badfish
synced 2025-07-11 11:39:15 +00:00
Document TTEntry and move layouts
No functional change. Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
parent
9e44a6dba9
commit
c6c4713ab2
2 changed files with 31 additions and 5 deletions
20
src/move.h
20
src/move.h
|
@ -38,10 +38,22 @@
|
|||
|
||||
class Position;
|
||||
|
||||
/// A move needs 17 bits to be stored
|
||||
///
|
||||
/// bit 0- 5: destination square (from 0 to 63)
|
||||
/// bit 6-11: origin square (from 0 to 63)
|
||||
/// bit 12-14: promotion piece type
|
||||
/// bit 15: en passant flag
|
||||
/// bit 16: castle flag
|
||||
///
|
||||
/// Special cases are MOVE_NONE and MOVE_NULL. We can sneak these in
|
||||
/// because in any normal move destination square is always different
|
||||
/// from origin square while MOVE_NONE and MOVE_NULL have the same
|
||||
/// origin and destination square, 0 and 1 respectively.
|
||||
|
||||
enum Move {
|
||||
MOVE_NONE = 0,
|
||||
MOVE_NULL = 65,
|
||||
MOVE_MAX = 0xFFFFFF
|
||||
MOVE_NULL = 65
|
||||
};
|
||||
|
||||
|
||||
|
@ -56,11 +68,11 @@ struct MoveStack {
|
|||
////
|
||||
|
||||
inline Square move_from(Move m) {
|
||||
return Square((int(m) >> 6) & 077);
|
||||
return Square((int(m) >> 6) & 0x3F);
|
||||
}
|
||||
|
||||
inline Square move_to(Move m) {
|
||||
return Square(m & 077);
|
||||
return Square(m & 0x3F);
|
||||
}
|
||||
|
||||
inline PieceType move_promotion(Move m) {
|
||||
|
|
16
src/tt.h
16
src/tt.h
|
@ -34,7 +34,21 @@
|
|||
//// Types
|
||||
////
|
||||
|
||||
/// The TTEntry class is the class of transposition table entries.
|
||||
/// The TTEntry class is the class of transposition table entries
|
||||
///
|
||||
/// A TTEntry needs 128 bits to be stored
|
||||
///
|
||||
/// bit 0-63: key
|
||||
/// bit 64-95: data
|
||||
/// bit 96-111: value
|
||||
/// bit 112-127: depth
|
||||
///
|
||||
/// the 32 bits of the data field are so defined
|
||||
///
|
||||
/// bit 0-16: move
|
||||
/// bit 17-19: not used
|
||||
/// bit 20-22: value type
|
||||
/// bit 23-31: generation
|
||||
|
||||
class TTEntry {
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue