summaryrefslogtreecommitdiff
path: root/ai/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ai/src/main.rs')
-rw-r--r--ai/src/main.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/ai/src/main.rs b/ai/src/main.rs
new file mode 100644
index 0000000..dcedcb5
--- /dev/null
+++ b/ai/src/main.rs
@@ -0,0 +1,25 @@
+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(),)
+ );
+}