From bf9e9af7f45433def26d2d2094a04798cb0282c0 Mon Sep 17 00:00:00 2001 From: mrw1593 Date: Tue, 13 Jul 2021 17:54:25 -0400 Subject: Updated docs and tests --- cli/src/perft.rs | 52 ++++++++++++++++++++++++++-------------------------- 1 file changed, 26 insertions(+), 26 deletions(-) (limited to 'cli/src') diff --git a/cli/src/perft.rs b/cli/src/perft.rs index eba640e..535aec0 100644 --- a/cli/src/perft.rs +++ b/cli/src/perft.rs @@ -1,26 +1,26 @@ -use ai::{CheckersBitBoard, Move, PossibleMoves}; -use rayon::prelude::*; -use std::fmt::{Display, Formatter}; - -#[derive(Clone)] -struct PerftResult { - result: Vec<(Move, usize)>, -} - -pub fn positions(board: CheckersBitBoard, depth: usize) -> usize { - let moves = PossibleMoves::moves(board); - - if depth == 0 { - 1 - } else { - let mut total = 0; - - for current_move in moves { - // safety: we got this move out of the list of possible moves, so it's definitely valid - let board = unsafe { current_move.apply_to(board) }; - total += positions(board, depth - 1); - } - - total - } -} +use ai::{CheckersBitBoard, Move, PossibleMoves}; +use rayon::prelude::*; +use std::fmt::{Display, Formatter}; + +#[derive(Clone)] +struct PerftResult { + result: Vec<(Move, usize)>, +} + +pub fn positions(board: CheckersBitBoard, depth: usize) -> usize { + let moves = PossibleMoves::moves(board); + + if depth == 0 { + 1 + } else { + let mut total = 0; + + for current_move in moves { + // safety: we got this move out of the list of possible moves, so it's definitely valid + let board = unsafe { current_move.apply_to(board) }; + total += positions(board, depth - 1); + } + + total + } +} -- cgit v1.2.3