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 {
|
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>>,
|
||||||
|
|||||||
Reference in New Issue
Block a user