tinker (doesn't work)
This commit is contained in:
18
src/elo.rs
18
src/elo.rs
@@ -105,7 +105,6 @@ impl std::fmt::Display for PlayerArena {
|
||||
|
||||
impl PlayerArena {
|
||||
pub fn new(players: Vec<(String, Box<dyn Fn(Piece) -> Box<dyn Agent>>)>) -> Self {
|
||||
let len = players.len();
|
||||
Self {
|
||||
players: players
|
||||
.into_iter()
|
||||
@@ -117,13 +116,16 @@ impl PlayerArena {
|
||||
|
||||
fn play(&mut self, pairs: &[(usize, usize)]) {
|
||||
pairs
|
||||
.iter()
|
||||
.into_iter()
|
||||
.map(|&(i, j)| {
|
||||
(
|
||||
(i, j),
|
||||
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)))
|
||||
.collect::<Vec<_>>()
|
||||
.into_iter()
|
||||
@@ -156,18 +158,6 @@ impl PlayerArena {
|
||||
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(
|
||||
player_1_fn: &Box<dyn Fn(Piece) -> Box<dyn Agent>>,
|
||||
player_2_fn: &Box<dyn Fn(Piece) -> Box<dyn Agent>>,
|
||||
|
||||
Reference in New Issue
Block a user