hmm
This commit is contained in:
parent
fdd0f68237
commit
2825186fbb
12
src/board.rs
12
src/board.rs
@ -146,8 +146,16 @@ impl Board {
|
||||
|
||||
let mut chains: Vec<Vec<(usize, usize)>> = Vec::with_capacity(8);
|
||||
|
||||
chains.extend(i_chain.map(|range| range.map(|i| (i, j)).collect()));
|
||||
chains.extend(j_chain.map(|range| range.map(|j| (i, j)).collect()));
|
||||
chains.extend(
|
||||
i_chain
|
||||
.map(|range| range.map(move |i| (i, j)))
|
||||
.map(Iterator::collect),
|
||||
);
|
||||
chains.extend(
|
||||
j_chain
|
||||
.map(|range| range.map(move |j| (i, j)))
|
||||
.map(Iterator::collect),
|
||||
);
|
||||
|
||||
// handle diagonals
|
||||
chains.extend(diag(i, j, 0, 0, BOARD_SIZE - 1, BOARD_SIZE - 1).map(Iterator::collect));
|
||||
|
||||
@ -32,7 +32,7 @@ pub fn diag<T>(
|
||||
min_j: T,
|
||||
max_i: T,
|
||||
max_j: T,
|
||||
) -> [impl Iterator<Item = (T, T)>; 4]
|
||||
) -> [impl Iterator<Item = (T, T)> + Clone; 4]
|
||||
where
|
||||
T: num::Integer + Copy,
|
||||
RangeInclusive<T>: Iterator<Item = T> + DoubleEndedIterator,
|
||||
@ -41,7 +41,7 @@ where
|
||||
let i_chains = split_from(min_i, max_i, i);
|
||||
let j_chains = split_from(min_j, max_j, j);
|
||||
|
||||
[(0, 0), (1, 1), (1, 0), (0, 1)].map(|(a, b)| i_chains[a].clone().zip(j_chains[b].clone()))
|
||||
[(0, 0), (1, 1), (1, 0), (0, 1)].map(move |(a, b)| i_chains[a].clone().zip(j_chains[b].clone()))
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user