1use std::env;
2
3fn main() {
4 atomic_movegen::attacks::init();
5 let args: Vec<String> = env::args().collect();
6 if args.len() < 3 {
7 eprintln!("Usage: perft <fen> <depth>");
8 std::process::exit(1);
9 }
10
11 let fen = &args[1];
12 let depth: u32 = args[2]
13 .parse()
14 .expect("Depth must be a non-negative integer");
15
16 match atomic_movegen::board::Board::from_fen(fen) {
17 Ok(mut board) => {
18 let nodes = atomic_movegen::perft(&mut board, depth);
19 println!("{}", nodes);
20 }
21 Err(e) => {
22 eprintln!("Error parsing FEN: {}", e);
23 std::process::exit(1);
24 }
25 }
26}