Use pointer-to-members to remove a bunch of duplicated code

Remove all generate_XXX_moves() functions, use an array
of pointer to members instead.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
This commit is contained in:
Marco Costalba
2008-10-17 23:30:34 +02:00
parent 94f1b31484
commit aa7121297d
4 changed files with 35 additions and 76 deletions

View File

@@ -48,11 +48,21 @@ Key Position::zobSideToMove;
Value Position::MgPieceSquareTable[16][64];
Value Position::EgPieceSquareTable[16][64];
Piece_attacks_fn piece_attacks_fn[7];
////
//// Functions
////
void init_piece_attacks_fn() {
piece_attacks_fn[KNIGHT] = &Position::knight_attacks;
piece_attacks_fn[BISHOP] = &Position::bishop_attacks;
piece_attacks_fn[ROOK] = &Position::rook_attacks;
piece_attacks_fn[QUEEN] = &Position::queen_attacks;
piece_attacks_fn[KING] = &Position::king_attacks;
}
/// Constructors
Position::Position(const Position &pos) {