fix othello player skip logic

This commit is contained in:
2025-02-10 10:23:28 -05:00
parent 3d3eb01143
commit 0bd8dec65d
5 changed files with 18 additions and 7 deletions

View File

@@ -226,9 +226,9 @@ impl FutureMoves {
let mut new_arena = Vec::new();
let mut index_map = vec![None; self.arena.len()];
for (old_idx, _) in retain.iter().enumerate().filter(|(_, a)| **a) {
for (old_idx, _) in retain.iter().enumerate().rev().filter(|(_, a)| **a) {
index_map[old_idx] = Some(new_arena.len());
let mut node = self.arena[old_idx].clone();
let mut node = self.arena.remove(old_idx);
node.parent = node.parent.and_then(|p| index_map[p]);
node.children = node.children.iter().filter_map(|&c| index_map[c]).collect();
new_arena.push(node);