diff --git a/inkwell-epoch1.model b/inkwell-epoch1.model new file mode 100644 index 0000000..dc93784 Binary files /dev/null and b/inkwell-epoch1.model differ diff --git a/inkwell-epoch2.model b/inkwell-epoch2.model new file mode 100644 index 0000000..a71ff30 Binary files /dev/null and b/inkwell-epoch2.model differ diff --git a/src/config.rs b/src/config.rs index 4db824b..1f6272d 100644 --- a/src/config.rs +++ b/src/config.rs @@ -20,4 +20,4 @@ pub const INFO: Info = Info { }; // FIXME: this needs to be configurable via UCI -pub const DEPTH: u8 = 7; +pub const DEPTH: u8 = 8; diff --git a/src/eval.rs b/src/eval.rs index e7be6ff..19931da 100644 --- a/src/eval.rs +++ b/src/eval.rs @@ -1,9 +1,6 @@ -use std::f64::{INFINITY, NEG_INFINITY}; - use chess::{ Board as ChessBoard, BoardStatus, ChessMove, Color, File, MoveGen, Piece, Rank, Square, }; -use itertools::Itertools; use crate::piece_tables; use crate::piece_values::get_piece_value; @@ -222,7 +219,7 @@ impl minimax::Game for Game { } } -#[derive(Default)] +#[derive(Default, Clone)] pub struct Evaluator; impl minimax::Evaluator for Evaluator { diff --git a/src/main.rs b/src/main.rs index ca7655e..fb6dc26 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,14 +3,11 @@ mod eval; mod piece_tables; mod piece_values; -use chess::{Board, ChessMove, MoveGen}; +use chess::Board; use config::INFO; -use eval::{Board as EvalBoard, Evaluator, Game}; -use itertools::Itertools; -use minimax::Strategy; +use eval::{Board as EvalBoard, Evaluator}; +use minimax::{IterativeOptions, ParallelOptions, ParallelSearch, Strategy}; -use std::collections::HashMap; -use std::f64::{INFINITY, NEG_INFINITY}; use std::io::{self, BufRead}; use std::process; use std::str::FromStr; @@ -97,9 +94,12 @@ fn main() { } if let Some(board) = board { - let opts = minimax::IterativeOptions::new().verbose(); - let mut strat: minimax::IterativeSearch = - minimax::IterativeSearch::new(Evaluator::default(), opts); + let mut strat = ParallelSearch::new( + Evaluator::default(), + IterativeOptions::new().verbose(), + ParallelOptions::new().with_background_pondering(), + ); + strat.set_max_depth(DEPTH); let mov = strat .choose_move(&EvalBoard {