minimax-pkg
Drake 1 year ago
parent a81bcb4689
commit 4ad9875c01

Binary file not shown.

Binary file not shown.

@ -20,4 +20,4 @@ pub const INFO: Info = Info {
}; };
// FIXME: this needs to be configurable via UCI // FIXME: this needs to be configurable via UCI
pub const DEPTH: u8 = 7; pub const DEPTH: u8 = 8;

@ -1,9 +1,6 @@
use std::f64::{INFINITY, NEG_INFINITY};
use chess::{ use chess::{
Board as ChessBoard, BoardStatus, ChessMove, Color, File, MoveGen, Piece, Rank, Square, Board as ChessBoard, BoardStatus, ChessMove, Color, File, MoveGen, Piece, Rank, Square,
}; };
use itertools::Itertools;
use crate::piece_tables; use crate::piece_tables;
use crate::piece_values::get_piece_value; use crate::piece_values::get_piece_value;
@ -222,7 +219,7 @@ impl minimax::Game for Game {
} }
} }
#[derive(Default)] #[derive(Default, Clone)]
pub struct Evaluator; pub struct Evaluator;
impl minimax::Evaluator for Evaluator { impl minimax::Evaluator for Evaluator {

@ -3,14 +3,11 @@ mod eval;
mod piece_tables; mod piece_tables;
mod piece_values; mod piece_values;
use chess::{Board, ChessMove, MoveGen}; use chess::Board;
use config::INFO; use config::INFO;
use eval::{Board as EvalBoard, Evaluator, Game}; use eval::{Board as EvalBoard, Evaluator};
use itertools::Itertools; use minimax::{IterativeOptions, ParallelOptions, ParallelSearch, Strategy};
use minimax::Strategy;
use std::collections::HashMap;
use std::f64::{INFINITY, NEG_INFINITY};
use std::io::{self, BufRead}; use std::io::{self, BufRead};
use std::process; use std::process;
use std::str::FromStr; use std::str::FromStr;
@ -97,9 +94,12 @@ fn main() {
} }
if let Some(board) = board { if let Some(board) = board {
let opts = minimax::IterativeOptions::new().verbose(); let mut strat = ParallelSearch::new(
let mut strat: minimax::IterativeSearch<Evaluator> = Evaluator::default(),
minimax::IterativeSearch::new(Evaluator::default(), opts); IterativeOptions::new().verbose(),
ParallelOptions::new().with_background_pondering(),
);
strat.set_max_depth(DEPTH); strat.set_max_depth(DEPTH);
let mov = strat let mov = strat
.choose_move(&EvalBoard { .choose_move(&EvalBoard {

Loading…
Cancel
Save