summaryrefslogtreecommitdiff
path: root/ai/src/main.rs
blob: dcedcb5cebbb42bb625bd06bbfc38620bcd50c67 (plain)
use ai::TranspositionTable;

const DEPTH: u8 = 18;

fn main() {
	let board = ai::CheckersBitBoard::starting_position();
	let mut table = TranspositionTable::new(50_000);
	let mut alpha = -1.0;
	let mut beta = 1.0;
	for i in 0..DEPTH {
		let mut eval = ai::negamax(i, alpha, beta, board, table.mut_ref());

		if (eval <= alpha) || (eval >= beta) {
			eval = ai::negamax(i, -1.0, 1.0, board, table.mut_ref());
		}

		alpha = f32::max(eval + 0.125, -1.0);
		beta = f32::min(eval + 0.125, 1.0);
	}

	println!(
		"{:?}",
		ai::negamax(DEPTH, alpha, beta, board, table.mut_ref(),)
	);
}