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);
|
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(
|
||||||
chains.extend(j_chain.map(|range| range.map(|j| (i, j)).collect()));
|
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
|
// handle diagonals
|
||||||
chains.extend(diag(i, j, 0, 0, BOARD_SIZE - 1, BOARD_SIZE - 1).map(Iterator::collect));
|
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,
|
min_j: T,
|
||||||
max_i: T,
|
max_i: T,
|
||||||
max_j: T,
|
max_j: T,
|
||||||
) -> [impl Iterator<Item = (T, T)>; 4]
|
) -> [impl Iterator<Item = (T, T)> + Clone; 4]
|
||||||
where
|
where
|
||||||
T: num::Integer + Copy,
|
T: num::Integer + Copy,
|
||||||
RangeInclusive<T>: Iterator<Item = T> + DoubleEndedIterator,
|
RangeInclusive<T>: Iterator<Item = T> + DoubleEndedIterator,
|
||||||
@ -41,7 +41,7 @@ where
|
|||||||
let i_chains = split_from(min_i, max_i, i);
|
let i_chains = split_from(min_i, max_i, i);
|
||||||
let j_chains = split_from(min_j, max_j, j);
|
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)]
|
#[cfg(test)]
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user