blob: 3e0b8efe74b35a3de02ed0234d8e029dc05d4a70 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#define MOVES_INTERNAL
#include "engine/moves.h"
void get_queen_moves(moves_t* moves, position_t position) {
assert_valid_position(position);
bitboard_t friendly_queens;
bitboard_t friendly_pieces;
bitboard_t enemy_pieces;
if (position.turn == WHITE_TURN) {
friendly_pieces = whites(position);
enemy_pieces = blacks(position);
friendly_queens = position.bitboards[WHITE_QUEEN];
} else {
friendly_pieces = blacks(position);
enemy_pieces = whites(position);
friendly_queens = position.bitboards[BLACK_QUEEN];
}
__forloop_rook_moves_gen(
moves,
friendly_queens,
friendly_pieces,
enemy_pieces
);
__forloop_bishop_moves_gen(
moves,
friendly_queens,
friendly_pieces,
enemy_pieces
);
}
|