propegate_from_dry chains improvements
This commit is contained in:
parent
13f5b29dac
commit
fdd0f68237
@ -146,14 +146,14 @@ impl Board {
|
||||
|
||||
let mut chains: Vec<Vec<(usize, usize)>> = Vec::with_capacity(8);
|
||||
|
||||
chains.extend(i_chain.map(|range| range.into_iter().map(|i| (i, j)).collect()));
|
||||
|
||||
chains.extend(j_chain.map(|range| range.into_iter().map(|j| (i, j)).collect()));
|
||||
chains.extend(i_chain.map(|range| range.map(|i| (i, j)).collect()));
|
||||
chains.extend(j_chain.map(|range| range.map(|j| (i, j)).collect()));
|
||||
|
||||
// handle diagonals
|
||||
chains.extend(diag(i, j, 0, 0, BOARD_SIZE - 1, BOARD_SIZE - 1).map(Iterator::collect));
|
||||
|
||||
let mut fill: Vec<(usize, usize)> = Vec::with_capacity(chains.iter().map(Vec::len).sum());
|
||||
// Longest chain is (BOARD_SIZE - 2) as there needs to be the two pieces containing it
|
||||
let mut fill: Vec<(usize, usize)> = Vec::with_capacity((BOARD_SIZE - 2) * chains.len());
|
||||
|
||||
for chain in chains {
|
||||
for (chain_length, &(new_i, new_j)) in chain.iter().enumerate() {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user