panic!("The strategy for player {} is incorrect, expected solution {}, got {}", player, expected, solution[player.to_index()]);
// We know that player only makes moves according to the strategy, so we can treat all vertices in the game as if they were owned by the opponent.
fn outgoing_edges<'a>(&'a self, vertex_index: VertexIndex) -> impl Iterator<Item = Edge<'a, G::Label>> + 'a {
self.game.owner(vertex_index) != self.player || self.strategy.get(vertex_index) == Some(&edge.to())