use std::str::FromStr;
use chasolver::{winnability, Winnability};
use chess::{Board, Color};
fn main() {
let fen = "6kB/p3p1P1/2p3P1/p7/8/4P3/PKP5/8 w - -";
let board = Board::from_str(fen).unwrap();
println!("Position: {fen}");
println!("White ran out of time. Result?\n");
match winnability(&board, Color::Black) {
Some(Winnability::Winnable { helpmate }) => {
let moves: Vec<_> = helpmate.iter().map(|m| m.to_string()).collect();
println!("Black wins! Here is a possible helpmate:");
println!("{}", moves.join(" "));
}
Some(Winnability::Unwinnable) => println!("Draw: Black cannot possibly deliver checkmate."),
None => println!("Undetermined."),
}
}