simplify apply_dir macro
This commit is contained in:
parent
0f3266cfbb
commit
5eef461050
@ -286,8 +286,8 @@ impl Board {
|
|||||||
let seed = BitBoard::from_coord(coords);
|
let seed = BitBoard::from_coord(coords);
|
||||||
|
|
||||||
macro_rules! apply_dir {
|
macro_rules! apply_dir {
|
||||||
($base:expr, $sum_mask:expr, $dir:expr) => {
|
($dir:expr) => {
|
||||||
let mut current = $base;
|
let mut current = seed;
|
||||||
let mut temp_flips = BitBoard::new();
|
let mut temp_flips = BitBoard::new();
|
||||||
|
|
||||||
// Expand in direction until edge or non-opponent piece
|
// Expand in direction until edge or non-opponent piece
|
||||||
@ -303,19 +303,19 @@ impl Board {
|
|||||||
|
|
||||||
// If terminated on a player piece, keep the flips
|
// If terminated on a player piece, keep the flips
|
||||||
if current.intersects(*player_board) {
|
if current.intersects(*player_board) {
|
||||||
$sum_mask.bitor_assign(temp_flips);
|
flip_mask.bitor_assign(temp_flips);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
apply_dir!(seed, flip_mask, BitBoard::east);
|
apply_dir!(BitBoard::east);
|
||||||
apply_dir!(seed, flip_mask, BitBoard::west);
|
apply_dir!(BitBoard::west);
|
||||||
apply_dir!(seed, flip_mask, BitBoard::north);
|
apply_dir!(BitBoard::north);
|
||||||
apply_dir!(seed, flip_mask, BitBoard::south);
|
apply_dir!(BitBoard::south);
|
||||||
apply_dir!(seed, flip_mask, BitBoard::northeast);
|
apply_dir!(BitBoard::northeast);
|
||||||
apply_dir!(seed, flip_mask, BitBoard::northwest);
|
apply_dir!(BitBoard::northwest);
|
||||||
apply_dir!(seed, flip_mask, BitBoard::southeast);
|
apply_dir!(BitBoard::southeast);
|
||||||
apply_dir!(seed, flip_mask, BitBoard::southwest);
|
apply_dir!(BitBoard::southwest);
|
||||||
flip_mask
|
flip_mask
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user