pub fn perft<G: Game>( state: &mut <G as Game>::S, max_depth: u8, multi_threaded: bool ) -> Vec<u64>where <G as Game>::S: Clone + Sync, <G as Game>::M: Copy + Sync,