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);
|
||||
|
||||
macro_rules! apply_dir {
|
||||
($base:expr, $sum_mask:expr, $dir:expr) => {
|
||||
let mut current = $base;
|
||||
($dir:expr) => {
|
||||
let mut current = seed;
|
||||
let mut temp_flips = BitBoard::new();
|
||||
|
||||
// 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 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!(seed, flip_mask, BitBoard::west);
|
||||
apply_dir!(seed, flip_mask, BitBoard::north);
|
||||
apply_dir!(seed, flip_mask, BitBoard::south);
|
||||
apply_dir!(seed, flip_mask, BitBoard::northeast);
|
||||
apply_dir!(seed, flip_mask, BitBoard::northwest);
|
||||
apply_dir!(seed, flip_mask, BitBoard::southeast);
|
||||
apply_dir!(seed, flip_mask, BitBoard::southwest);
|
||||
apply_dir!(BitBoard::east);
|
||||
apply_dir!(BitBoard::west);
|
||||
apply_dir!(BitBoard::north);
|
||||
apply_dir!(BitBoard::south);
|
||||
apply_dir!(BitBoard::northeast);
|
||||
apply_dir!(BitBoard::northwest);
|
||||
apply_dir!(BitBoard::southeast);
|
||||
apply_dir!(BitBoard::southwest);
|
||||
flip_mask
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user