tinker (doesn't work)

This commit is contained in:
2025-03-03 09:34:34 -05:00
parent af069b1cfe
commit c368ffc495

View File

@@ -105,7 +105,6 @@ impl std::fmt::Display for PlayerArena {
impl PlayerArena { impl PlayerArena {
pub fn new(players: Vec<(String, Box<dyn Fn(Piece) -> Box<dyn Agent>>)>) -> Self { pub fn new(players: Vec<(String, Box<dyn Fn(Piece) -> Box<dyn Agent>>)>) -> Self {
let len = players.len();
Self { Self {
players: players players: players
.into_iter() .into_iter()
@@ -117,13 +116,16 @@ impl PlayerArena {
fn play(&mut self, pairs: &[(usize, usize)]) { fn play(&mut self, pairs: &[(usize, usize)]) {
pairs pairs
.iter() .into_iter()
.map(|&(i, j)| { .map(|&(i, j)| {
( (
(i, j), (i, j),
Self::create_agents(&self.players[i].1, &self.players[j].1), Self::create_agents(&self.players[i].1, &self.players[j].1),
) )
}) })
.collect::<Vec<_>>()
// .into_iter()
.into_par_iter()
.map(|((i, j), (p1, p2))| (i, j, Self::play_two_inner(p1, p2))) .map(|((i, j), (p1, p2))| (i, j, Self::play_two_inner(p1, p2)))
.collect::<Vec<_>>() .collect::<Vec<_>>()
.into_iter() .into_iter()
@@ -156,18 +158,6 @@ impl PlayerArena {
self.players[player2].2 = np2; self.players[player2].2 = np2;
} }
fn play_two(&mut self, player1: usize, player2: usize) {
println!(
"{} vs {}...",
self.players[player1].0, self.players[player2].0
);
let (p1, p2) = Self::create_agents(&self.players[player1].1, &self.players[player2].1);
let outcome = Self::play_two_inner(p1, p2);
self.process_outcome(player1, player2, &outcome);
}
fn create_agents( fn create_agents(
player_1_fn: &Box<dyn Fn(Piece) -> Box<dyn Agent>>, player_1_fn: &Box<dyn Fn(Piece) -> Box<dyn Agent>>,
player_2_fn: &Box<dyn Fn(Piece) -> Box<dyn Agent>>, player_2_fn: &Box<dyn Fn(Piece) -> Box<dyn Agent>>,